要给一个二维数组追加元素不知道为啥一直追加不上去。类似代码如下,主要用了array_unshift()这个函数,在文档中说是可以将元素追加到数组中。
<?php
$arr1 = ['0'=>['name'=>zhangsan,'sex'=>1],'1'=>['name'=>lisi,'sex'=>0],'2'=>['name'=>wangwu,'sex'=>1]];
$array2 = ['0'=>['name'=>zhaoliu,'sex'=>1],'1'=>['name'=>xiaoqi,'sex'=>1]];
//把$arr2的元素追加到$arr1的最前面
第一种方法:
foreach($array2 as $key=>$value){
array_unshift($arr1,$value);
}
第二种方法:
array_walk($array2,function($item) use ($arr1)){
array_unshift($arr1,$item);
}
输出显示部分就不写了暂时
执行结果打印$arr1的时候都是显示了一个数字,而不是追加后的新数组;求高手分析下原因或给予解决方法,谢谢。
3 回答
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
烙印99
TA贡献1829条经验 获得超13个赞
你用了use ($arr1)
,这只是按值传递,需要使用引用传递use (&$arr1)
array_unshift() 的参数是按引用传递的,所以会直接改变原数组,而且返回值只是数组的元素个数。print_r(array_unshift())
只会输出数字
- 3 回答
- 0 关注
- 758 浏览
添加回答
举报
0/150
提交
取消