簡體   English   中英

如何在php中擴展多維數組

[英]How to extend a multidimensional array in php

如果我的代碼看起來像......

$result = $mysqli->query("SELECT id, name, color FROM fruits");
$list = array();
while($r = $result->fetch_array()) {
    $list[] = $r;
}
print json_encode(array('list' => $list));

結果是......

list[0].id = '1', list[0].name = 'apple', list[0].color = 'red';
list[1].id = '2', list[1].name = 'banana', list[1].color = 'yellow';
...

沒關系,但我需要在列表中添加其他信息。 我如何擴展數組並得到類似的東西:

list[0].id = '1', list[0].name = 'apple', list[0].color = 'red', list[0].taste = 'sour';
list[1].id = '2', list[1].name = 'banana', list[1].color = 'yellow', list[0].taste = 'sweet';
...

這不起作用:

$result = $mysqli->query("SELECT id, name, color FROM fruits");
$list = array();
while($r = $result->fetch_array()) {
    $list[] = $r;
    $list[]['taste'] =  'sweet'; //DOES NOT WORK
    array_push($list,array("taste" => 'sweet')); //DOES ALSO NOT WORK
}
print json_encode(array('list' => $list));

謝謝!!!

因為$list[] = $valuearray_push($list, $value)相同array_push($list, $value) 沒有$list[]['key']這樣的東西。

在將其添加到$list之前,應該將其添加到$r變量$list

while($r = $result->fetch_array()) {
    $r['taste'] = 'sweet'; //DOES WORK!
    $list[] = $r;
}

如果你已經有$list ,你可以簡單地循環並添加它:

foreach ($list as &$array) {
    $array['taste'] = 'sweet';
}
unset($array); //remember to unset references

..或如果你討厭引用:

foreach ($list as $key => $array) {
    $list[$key]['taste'] = 'sweet';
}

你需要一個中間變量

$result = $mysqli->query("SELECT id, name, color FROM fruits");
$list = array();
while($r = $result->fetch_array()) {
 $r['taste'] =  'sweet'; //Modify an existing array

 $list[] = $r;


}
print json_encode(array('list' => $list));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM