要給一個(gè)二維數(shù)組追加元素不知道為啥一直追加不上去。類似代碼如下,主要用了array_unshift()這個(gè)函數(shù),在文檔中說是可以將元素追加到數(shù)組中。
<?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);
}
輸出顯示部分就不寫了暫時(shí)
執(zhí)行結(jié)果打印$arr1的時(shí)候都是顯示了一個(gè)數(shù)字,而不是追加后的新數(shù)組;求高手分析下原因或給予解決方法,謝謝。
3 回答

烙印99
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
你用了use ($arr1)
,這只是按值傳遞,需要使用引用傳遞use (&$arr1)
array_unshift() 的參數(shù)是按引用傳遞的,所以會(huì)直接改變原數(shù)組,而且返回值只是數(shù)組的元素個(gè)數(shù)。print_r(array_unshift())
只會(huì)輸出數(shù)字

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
抱歉,你的第二個(gè)寫法能跟我解釋下么?實(shí)在是沒看懂,而且第一個(gè)方法是可運(yùn)行完成的,但至于為什么不成功,能不能把你寫的代碼,還有打印結(jié)果,發(fā)一張截圖看下。

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
array_unshift返回的是被添加的數(shù)組的新數(shù)目,所以會(huì)返回一個(gè)數(shù)字,而不是追加后的新數(shù)組
- 3 回答
- 0 關(guān)注
- 782 瀏覽
添加回答
舉報(bào)
0/150
提交
取消