這篇文章主要講解了“PHP如何將兩個(gè)關(guān)聯(lián)數(shù)組合并函數(shù)提高函數(shù)效率”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“PHP如何將兩個(gè)關(guān)聯(lián)數(shù)組合并函數(shù)提高函數(shù)效率”吧!
創(chuàng)新互聯(lián)是專(zhuān)業(yè)的富順網(wǎng)站建設(shè)公司,富順接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行富順網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!在foreach中循環(huán)查詢(xún)數(shù)據(jù)代碼量比較少,但是性能比較低,好點(diǎn)的解決辦法是將id收集起來(lái),用in一次性查詢(xún),但是這引發(fā)了數(shù)據(jù)結(jié)構(gòu)不是我們用PHP自帶的函數(shù)可以合并的,今天測(cè)試了一下:
使用下面的字節(jié)寫(xiě)的函數(shù)可以解決
從數(shù)據(jù)庫(kù)中取出來(lái)的數(shù)據(jù)總是或多或少不符合我們心目中的數(shù)據(jù)結(jié)構(gòu),類(lèi)似于下面的倆個(gè)數(shù)組,要形成SQL中類(lèi)似于left join后兩個(gè)數(shù)組合并:
復(fù)制代碼 代碼如下:
$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);
如果要將這兩個(gè)數(shù)組,類(lèi)似于sql中的left join 關(guān)聯(lián)起來(lái)我們用什么函數(shù)呢?額我沒(méi)有找見(jiàn)就自己寫(xiě)了
剛開(kāi)始的時(shí)候,用的是嵌套循環(huán):效率低下
復(fù)制代碼 代碼如下:
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
foreach($array1 as $key1 => $value1 ) {
foreach ($array2 as $key2 => $value2) {
if($value1[$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $value2);
}
}
}
return $ret;
}
改進(jìn)后的辦法,使用數(shù)組下標(biāo),使用兩次循環(huán):形成類(lèi)似于left join的方式
復(fù)制代碼 代碼如下:
$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
//使用數(shù)組下標(biāo)的辦法
foreach ($array2 as $key => $value) {
$array3[$value[$field1]] = $value;
}
foreach ($array1 as $key => $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
return $ret;
}
$ret = _mergerArray($test1, $test2, 'id', 'id');
print_r($ret);exit;
打印出來(lái)結(jié)果如下:
復(fù)制代碼 代碼如下:
Array
(
[0] => Array
(
[id] => 9478137
[message] => love you
[create_time] => 1394760724
)
[1] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
[2] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
)
感謝各位的閱讀,以上就是“PHP如何將兩個(gè)關(guān)聯(lián)數(shù)組合并函數(shù)提高函數(shù)效率”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)PHP如何將兩個(gè)關(guān)聯(lián)數(shù)組合并函數(shù)提高函數(shù)效率這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
分享題目:PHP如何將兩個(gè)關(guān)聯(lián)數(shù)組合并函數(shù)提高函數(shù)效率-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://m.newbst.com/article4/hpjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、建站公司、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容