为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
温温酱 2019-03-13 17:18:19
要给一个二维数组追加元素不知道为啥一直追加不上去。类似代码如下,主要用了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 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

你用了use ($arr1),这只是按值传递,需要使用引用传递use (&$arr1)

array_unshift() 的参数是按引用传递的,所以会直接改变原数组,而且返回值只是数组的元素个数。print_r(array_unshift())只会输出数字

查看完整回答
反对 回复 2019-03-18
?
墨色风雨

TA贡献1853条经验 获得超6个赞

抱歉,你的第二个写法能跟我解释下么?实在是没看懂,而且第一个方法是可运行完成的,但至于为什么不成功,能不能把你写的代码,还有打印结果,发一张截图看下。

查看完整回答
反对 回复 2019-03-18
?
达令说

TA贡献1821条经验 获得超6个赞

https://img1.sycdn.imooc.com//5c8f42140001c30808000442.jpg
array_unshift返回的是被添加的数组的新数目,所以会返回一个数字,而不是追加后的新数组

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 758 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信