2

foreachCodeIgniter. 我想要做的是将我在每一行、foreach循环中所做的更改反映到原始数组。

        $unique = $this->db->get_where('list', array('item_index' => $item));
        foreach ($unique->result_array() as $row)

            {
                $row["status"]= "Not Unique";
            if($row["bid_amount"]==$amount)
                {
                    if($count==0){ $row["status"]="Unique and Final"; }
                    else {$row["status"]="Unique but Not Final"; }

                }

                $count++;

            }   
        return $unique;

我在这里为每一行添加另一个属性,我想回显与视图文件中的每一行对应的这个属性。但我收到错误 Undefined index: status。我怎么可能反映要返回的数组中的更改。

4

2 回答 2

3

将 分配result_array()给一个变量,对其进行迭代,但更改原始数组而不是本地数组。PHPforeach有两种风格:

foreach($arr as $value)foreach($arr as $key => $value)

试试这个:

$results = $unique->result_array();
foreach ($results as $rK => $rV){
    $results[$rK]["status"]= "Not Unique";
    //other stuff.
}
return $results;

或者,您可以通过引用传递:

foreach ($results as &$result) {
    $result['status'] = "Not Unique";
}

请参阅有关数组的 PHP 文档。具体实施例 10。

于 2012-09-09T23:20:56.740 回答
1

在您的 foreach 中,$row指的是循环本地的变量。因此更改它不会影响$unique.

于 2012-09-09T23:10:01.627 回答