配列の一部の値のみを直接更新しようとしています。どちらが完璧に働いていますか?私は次のメソッドを使用しています:&Array() - 配列の更新後にアンパサンドが付加された最後の行
foreach($items as &$item) {
if($criteria == 'correct') {
// update array
$item['update_me'] = 'updated';
}
}
これで、$ itemsという更新された配列が作成されました。
しかし、私が持っている問題は、この配列が(別のforeachループを介して)画面に出力され、配列の最後の行が見つからない場合です。
アレイ全体をvar_dump($ items)で出力すると、メソッドでは、各行にArray(9)という接頭辞が付いています。しかし、最後の行には接頭辞& Array(9)が付いています。先行するアンパサンドに注意してください。私はこれが重要だと確信しています!しかし、私はそれが何を意味するのか分かりません。配列の最後の行にのみ適用されるのはなぜですか?そしてどうすればそれを取り除くことができますか?コメントから
:
array(6) {
[0]=> array(9) {
["item_id"]=> string(4) "1"
["item_description"]=> string(9) "blah blah"
["quantity"]=> string(1) "4"
["unit_cost"]=> string(4) "5.00"
["subtotal"]=> string(4) "20.00"
}
[1]=> &array(9) {
["item_id"]=> string(4) "2"
["item_description"]=> string(9) "blah blah"
["quantity"]=> string(1) "1"
["unit_cost"]=> string(4) "5.99"
["subtotal"]=> string(4) "5.99"
}
}
関連するすべてのコードを表示します。関連する出力を表示します。あなたが使っている言語を教えてください。 – Marcin
テストケースお願いします。 –
うまくいけば今すぐ修正する必要があります。しかし、ここに参考のために出力があります: 'array(6) {[0] => array(9) \t {[item_id]] => string(4)" 1 " \t [ ITEM_DESCRIPTION "] =>列(9) "何とか何とか" \t [" 量 "] =>列(1) "4" \t [" UNIT_COST "] =>列(4) "5.00" \t [" 小計"] =>列(4) "20.00" \t} [1] =>&アレイ(9) \t {[" ITEM_ID "] =>列(4) "2" \t [" ITEM_DESCRIPTION "] =>文字列(9) "blah blah" \t [数量] =>文字列(1) "1" \t [ "UNIT_COST"] =>の文字列(4) "5.99" \t [ "小計"] =>の文字列(4) "5.99" \t}} ' – user1100149