2

foreachのモデル ファイルの行の配列でループを使用していますCodeIgniter。私がやりたいことは、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には 2 つの種類があります。

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 に答える