PHP中數(shù)組合并的兩種方法及區(qū)別介紹
更新時(shí)間:2012年09月14日 23:58:13 作者:
PHP中數(shù)組合并的兩種方法及區(qū)別介紹,需要的朋友可以參考下
PHP數(shù)組合并兩種方法及區(qū)別
如果是關(guān)聯(lián)數(shù)組,如下:
$a = array(
'where' => 'uid=1',
'order' => 'uid',
);
$b = array(
'where' => 'uid=2',
'order' => 'uid desc',
);
1. array_merge,如果兩個(gè)數(shù)組存在相同的key,后面的一個(gè)會(huì)覆蓋前面的
<?php
$c = array_merge($a, $b);
var_export($c);//結(jié)果與原來(lái)的$b相同
$d = array_merge($b, $a);
var_export($d);//結(jié)果與原來(lái)的$a相同
2. "+"操作符,如果兩個(gè)數(shù)組存在相同的key,前面的一個(gè)會(huì)覆蓋后面的
<?php
$c = $a + $b;
var_export($c);//結(jié)果與原來(lái)的$a相同
$d = $b + $a;
var_export($d);//結(jié)果與原來(lái)的$b相同
如果是數(shù)字索引數(shù)組,如下:
$a = array(
1 => '1111111',
2 => '222222222'
);
$b = array(
4 => '33333333333',
1 => '444444444'
);
1. array_merge. 效果類似代碼foreach每個(gè)數(shù)組元素,然后將每個(gè)元素壓入一個(gè)新堆棧當(dāng)中
<?php
$c = array_merge($a, $b);
var_export($c);
$d = array_merge($b, $a);
var_export($d);
輸出:
array (
0 => '1111111',
1 => '222222222',
2 => '33333333333',
3 => '444444444',
)
array (
0 => '33333333333',
1 => '444444444',
2 => '1111111',
3 => '222222222',
)
2. "+"操作符. 效果類似代碼foreach每個(gè)數(shù)組元素,然后將每個(gè)元素壓入一個(gè)新堆棧當(dāng)中,如果同樣的key已經(jīng)存在則不處理
<?php
$c = $a + $b;
var_export($c);
$d = $b + $a;
var_export($d);
輸出:
array (
1 => '1111111',
2 => '222222222',
4 => '33333333333',
)
array (
4 => '33333333333',
1 => '444444444',
2 => '222222222',
)
如果是關(guān)聯(lián)數(shù)組,如下:
復(fù)制代碼 代碼如下:
$a = array(
'where' => 'uid=1',
'order' => 'uid',
);
$b = array(
'where' => 'uid=2',
'order' => 'uid desc',
);
1. array_merge,如果兩個(gè)數(shù)組存在相同的key,后面的一個(gè)會(huì)覆蓋前面的
復(fù)制代碼 代碼如下:
<?php
$c = array_merge($a, $b);
var_export($c);//結(jié)果與原來(lái)的$b相同
$d = array_merge($b, $a);
var_export($d);//結(jié)果與原來(lái)的$a相同
2. "+"操作符,如果兩個(gè)數(shù)組存在相同的key,前面的一個(gè)會(huì)覆蓋后面的
復(fù)制代碼 代碼如下:
<?php
$c = $a + $b;
var_export($c);//結(jié)果與原來(lái)的$a相同
$d = $b + $a;
var_export($d);//結(jié)果與原來(lái)的$b相同
如果是數(shù)字索引數(shù)組,如下:
復(fù)制代碼 代碼如下:
$a = array(
1 => '1111111',
2 => '222222222'
);
$b = array(
4 => '33333333333',
1 => '444444444'
);
1. array_merge. 效果類似代碼foreach每個(gè)數(shù)組元素,然后將每個(gè)元素壓入一個(gè)新堆棧當(dāng)中
復(fù)制代碼 代碼如下:
<?php
$c = array_merge($a, $b);
var_export($c);
$d = array_merge($b, $a);
var_export($d);
輸出:
array (
0 => '1111111',
1 => '222222222',
2 => '33333333333',
3 => '444444444',
)
array (
0 => '33333333333',
1 => '444444444',
2 => '1111111',
3 => '222222222',
)
2. "+"操作符. 效果類似代碼foreach每個(gè)數(shù)組元素,然后將每個(gè)元素壓入一個(gè)新堆棧當(dāng)中,如果同樣的key已經(jīng)存在則不處理
復(fù)制代碼 代碼如下:
<?php
$c = $a + $b;
var_export($c);
$d = $b + $a;
var_export($d);
輸出:
array (
1 => '1111111',
2 => '222222222',
4 => '33333333333',
)
array (
4 => '33333333333',
1 => '444444444',
2 => '222222222',
)
相關(guān)文章
PHP與MySQL開(kāi)發(fā)中頁(yè)面亂碼的產(chǎn)生與解決
一般來(lái)說(shuō),亂碼的出現(xiàn)有2種原因,首先是由于編碼(charset)設(shè)置錯(cuò)誤,導(dǎo)致瀏覽器以錯(cuò)誤的編碼來(lái)解析,從而出現(xiàn)了滿屏亂七八糟的“天書(shū)”,其次是文件被以錯(cuò)誤的編碼打開(kāi),然后保存,比如一個(gè)文本文件原先是GB2312編碼的,卻以UTF-8編碼打開(kāi)再保存。要解決上述亂碼問(wèn)題,首先需要知道開(kāi)發(fā)中哪些環(huán)節(jié)涉及到了編碼:2008-03-03
PHP使用new StdClass()創(chuàng)建空對(duì)象的方法分析
這篇文章主要介紹了PHP使用new StdClass()創(chuàng)建空對(duì)象的方法,結(jié)合具體實(shí)例形式分析了php空對(duì)象的創(chuàng)建與使用方法,需要的朋友可以參考下2017-06-06
PHP return語(yǔ)句另類用法不止是在函數(shù)中
一直以為,return只能出現(xiàn)在函數(shù)中,直到看了bbPress的代碼,很是吃驚,大家看看就知道了2014-09-09
介紹幾個(gè)array庫(kù)的新函數(shù) php
介紹幾個(gè)array庫(kù)的新函數(shù) php...2006-12-12
linux系統(tǒng)上支持php的 iconv()函數(shù)的方法
iconv函數(shù)庫(kù)能夠完成各種字符集間的轉(zhuǎn)換,是php編程中不可缺少的基礎(chǔ)函數(shù)庫(kù)。2011-10-10
php之使用docker運(yùn)行workerman案例講解
這篇文章主要介紹了php之使用docker運(yùn)行workerman案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
修改Zend引擎實(shí)現(xiàn)PHP源碼加密的原理及實(shí)踐
來(lái)源:phphot PHP文件的源碼都是明文,這對(duì)于某些商業(yè)用途來(lái)說(shuō),并不適合。 因此考慮使用加密的手段保護(hù)源碼。 實(shí)在不耐煩等待zend出編譯器,而且編譯和加密本質(zhì)上不是一回事兒。自己動(dòng)手、開(kāi)始修改。2008-04-04

