如何在php codeigniter中合并两个不同数组的两个不同值

时间:2016-12-27 10:42:14

标签: php codeigniter-2

我有这种表

aa

我想要像这样获取数据

a

我已经获取了菜肴名称(文本),但我还需要在单个数组中使用它的ID我该怎么办? 我的代码如下: 控制器: -

function fetch()
    {
        $this->load->model('fetch');
        $d=$this->fetch->call();
        $e=$d->result();
        $max=$d->num_rows();
        for($i=0;$i<$max;$i++){
            $a[$i]=$e[$i]->product;
            $a2[$i]=$e[$i]->id;
            $b[]=explode(',',$a[$i]);
        }
        echo '<pre>';
        print_r($a2);
        $array['arr'] = call_user_func_array('array_merge', array_map('array_values', $b));
        $this->load->view('display',$array);
    }

型号: -

function call()
    {
        $this->db->select('*');
        $this->db->from('ruff');
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            return $query;
        } else {
            return false;
        }
    }

查看: -

<body>
<input type="text" name="item" id="txt_search" list="item_list">
<datalist id="item_list">
    <?php
        foreach($arr as $a)
        {
            echo "<option>".$a."</option>";
        }
    ?>
</datalist>
</body>

提前致谢。

4 个答案:

答案 0 :(得分:0)

在你的控制器中试试这个......代码

 $this->load->model('fetch');
    $d=$this->fetch->call();
    $e=$d->result_array();
    // $max=$d->num_rows();
    $products='';
    foreach ($e as $p) {
      $products.=$p['product'];
    }

    $data=explode(',', $products);

    echo '<pre>';
    print_r($data);
    echo '</pre>';

答案 1 :(得分:0)

通常在控制器中访问数据库功能不是一个好习惯。因此,为了满足计算物品的需要,您可以更改模型以返回一系列物品。

型号:

var test1 = (from p in Products
select new ProductResult()
{
   Name = p.ProductName,
   Category = p.CategoryId,
   Supplier = p.SupplierID,
}).Distinct();

然后,在控制器的function call() { $data = array(); $this->db->select('*'); $this->db->from('ruff'); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach($query->result() as $row){ $data[] = (array)$row; } return $data; } else { return false; } } 函数中,您可以展开fetch字段并创建另一个数组以提交到您的视图。

控制器:

product

这将导致您有一个类似于下面的数组:

function fetch()
{
    $this->load->model('fetch');
    $d=$this->fetch->call();

    $list = array();

    foreach($d as $row)
    {
        $products = explode(',', $row['product']);
        foreach($products as $p)
        {
            $list[] = array('id' => $row['id'], 'product' => $p);
        }
    }

    $this->load->view('display',array('arr' => $list));
}

现在您的ID可以在您的视图中使用。

查看:

Array
(
[0] => Array
    (
        [id] => 1
        [product] => veg. burger
    )

[1] => Array
    (
        [id] => 1
        [product] =>  non-veg burger
    )

[2] => Array
    (
        [id] => 1
        [product] =>  chees burger
    )

[3] => Array
    (
        [id] => 2
        [product] => vadapau
    )

[4] => Array
    (
        [id] => 2
        [product] =>  butter vadapau
    )

[5] => Array
    (
        [id] => 2
        [product] =>  chees vadapau
    )
)

答案 2 :(得分:0)

这是您的型号代码。

public function call()
{
   $query = $this->db->select("id,product")
                        ->from("stuff")
                        ->get();
    if ($query->num_rows() > 0) {
        return $query->result_array();
    } else {
        return false;
    }
}

现在,您将在控制器中获取结果数据数组。这是控制器功能。

public function fetch()
{
    $this->load->model('fetch');

    $result = $this->fetch->call();
    foreach ($result as $value) {
        $newArr = explode(',',$value['product']);   
        foreach ($newArr as  $val) {
            $productArray[]  = array('productID'=>$value['id'],"product"=>$val);
        }
    }
    $data['finalArray'] = $productArray;
    $this->load->view('display',$data);

}

现在访问视图中的最终产品数组。这是查看代码。

<input type="text" name="item" id="txt_search" list="item_list">
<table id="item_list" border="1">
    <?php

        foreach($finalArray as $stuffs)
        {
            echo "<tr>";
            echo "<td>".$stuffs['productID']."</td>";
            echo "<td>".$stuffs['product']."</td>";
            echo "</tr>";
        }
    ?>
</table>

干杯!

答案 3 :(得分:0)

非常简单的代码请遵循代码 您的型号代码如下:

型号: -

function call() { return $this->db->get('ruff')->result_array(); }

此代码现在为您提供所有数据控制器代码,如下所示

控制器: -

function fetch() { $this->load->model('fetch'); $array['arr'] = $this->fetch->call(); $this->load->view('display',$array); }

此代码现在为您提供所有数据控制器代码,如下所示

控制器: -

function fetch() { $this->load->model('fetch'); $array['arr'] = $this->fetch->call(); $this->load->view('display',$array); } 此代码为您提供现在所有数据控制器代码,如下所示

控制器: -

function fetch() { $this->load->model('fetch'); $array['arr'] = $this->fetch->call(); $this->load->view('display',$array); }

现在请在视图中编写代码 视图: -

` 此代码为您提供现在所有数据控制器代码,如下所示

控制器: - function fetch() { $this->load->model('fetch'); $array['arr'] = $this->fetch->call(); $this->load->view('display',$array); }

现在请在视图中编写代码 视图: -

<body> <input type="text" name="item" id="txt_search" list="item_list"> <datalist id="item_list"> <?php foreach($arr as $value){ $newarray=explode(',',$value); foreach($newarray as $test) { echo "<option value=".$arr['id'].">".$test['product']."</option>"; } } ?> </datalist> </body>

我认为此代码可以帮助您 感谢