php 二维数组头部追加元素问题求助

要给一个二维数组追加元素不知道为啥一直追加不上去。类似代码如下,主要用了array_unshift()这个函数,在文档中说是可以将元素追加到数组中。
$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($array2as$key=>$value){
array_unshift($arr1,$value);
}
第二种方法:
array_walk($array2,function($item)use($arr1)){
array_unshift($arr1,$item);
}
输出显示部分就不写了暂时
执行结果打印$arr1的时候都是显示了一个数字,而不是追加后的新数组;求高手分析下原因或给予解决方法,谢谢。
UYOU
浏览 1140回答 2
2回答

繁星coding

你用了use($arr1),这只是按值传递,需要使用引用传递use(&$arr1)array_unshift()的参数是按引用传递的,所以会直接改变原数组,而且返回值只是数组的元素个数。print_r(array_unshift())只会输出数字

呼啦一阵风

抱歉,你的第二个写法能跟我解释下么?实在是没看懂,而且第一个方法是可运行完成的,但至于为什么不成功,能不能把你写的代码,还有打印结果,发一张截图看下。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript