[英]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[] = $value
与array_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.