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

要给一个二维数组追加元素不知道为啥一直追加不上去。类似代码如下,主要用了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的时候都是显示了一个数字,而不是追加后的新数组;求高手分析下原因或给予解决方法,谢谢。

回答

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

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

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

【nginx】php 二维数组头部追加元素问题求助
array_unshift返回的是被添加的数组的新数目,所以会返回一个数字,而不是追加后的新数组

以上是 【nginx】php 二维数组头部追加元素问题求助 的全部内容, 来源链接: utcz.com/a/85089.html

回到顶部