我需要在不覆盖旧数据的情况下向数组添加一些细节。
如果我print_r($ data)
,目前我有类似的东西 Array
(
[one] => Hello
[two] => Hello World
)
然后我有一个向数组添加一些数据的函数
foreach ($rubric as $rs){
if($rs['position']==1){$data['one']=$rs;}
if($rs['position']==2){$data['two']=$rs;}
}
如果我print_r($ data)
,这会给我以下内容Array
(
[one] => Array
(
[id] => 1
)
[two] => Array
(
[id] => 2
)
)
有没有人有任何想法
我想做的是......
foreach ($rubric as $rs){
if($rs['position']==1){$data['one']['details']=$rs;}
if($rs['position']==2){$data['two']['details']=$rs;}
}
目的是在每个数组项中添加一个名为“details”的新子数据......
这有意义吗?如果我尝试运行该代码但是我收到以下错误
遇到了PHP错误 严重性:注意 消息:数组到字符串转换
有人能告诉我我做错了吗?
答案 0 :(得分:1)
数组推送将元素放在最后。数组unshift在数组的开头添加一个数字。
您也可以使用结构
$myArray['nameOfNewElement']=$newElement;
这会将$ newElement添加到数组$ myArray中;
答案 1 :(得分:1)
您可以使用array_merge。
根据你的问题,这是解决方案:
// sample array
$rubric = array(0=> array("position"=>1),1 => array("position"=>2));
$data = array("one" => "Hello","two" => "hello world");
foreach ($rubric as $rs){
if($rs['position']==1){
$d= array_merge($data,$rs);
}
if($rs['position']==2){
$d= array_merge($data,$rs);
}
}
print_r($d);
以下是有效的演示:http://codepad.org/rgKiv542
希望,它会帮助你。
答案 2 :(得分:0)
当您编写$data['one'] = $rs;
时,您指定$ rs来覆盖值"Hello"
。
也许你想要做的是
$data['three'] = $rs['id'];