Re: [請益] 兩陣列 如何join
※ 引述《sk1765 (愛是一種忍耐)》之銘言:
: 請問有函數有這樣join的功能嗎 或是程式要怎麼寫比較簡潔
如果你的條件是
Array A 跟 Array B 以 id 做為合併的 key
而 Array A 跟 Array B 的其他 key 不會重複的話
那我是這樣寫的 ..
<?php
function array_2D_merge($arr1,$arr2,$key)
{
$retArr = array();
foreach($arr1 as $bemerge)
{
$keyval = $bemerge[$key];
foreach($arr2 as $search)
{
if($search[$key]==$keyval) {
$retArr[] = array_merge($search,$bemerge);
break;
}
}
}
return $retArr;
}
?>
$arr1 , $arr2 就是你兩個 array
$key 是你兩個 array 都會有,用來合併用的 key (這邊是 id)
流程就不說明了 ..
input :
<?php
$a = array(
array("id"=>"001","msg"=>"aaa"),
array("id"=>"002","msg"=>"bbb"),
array("id"=>"003","msg"=>"ccc")
);
$b = array(
array("id"=>"001","name"=>"qac"),
array("id"=>"002","name"=>"swv"),
array("id"=>"003","name"=>"edbv")
);
?>
print_r(array_2D_merge($a,$b,"id"));
output :
Array
(
[0] => Array
(
[id] => 001
[name] => qac
[msg] => aaa
)
[1] => Array
(
[id] => 002
[name] => swv
[msg] => bbb
)
[2] => Array
(
[id] => 003
[name] => edbv
[msg] => ccc
)
)
應該有符合你的要求吧Orz
但因為主要還是用 array_merge
所以如果兩個陣列有 key 相同的狀況可能會發生不可預期的結果
(其實就是後面的陣列值會覆蓋上去這樣XD)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.30.6
推
03/16 19:18, , 1F
03/16 19:18, 1F
→
03/16 19:20, , 2F
03/16 19:20, 2F
→
03/16 19:21, , 3F
03/16 19:21, 3F
→
03/16 19:22, , 4F
03/16 19:22, 4F
→
03/16 19:23, , 5F
03/16 19:23, 5F
→
03/16 19:24, , 6F
03/16 19:24, 6F
→
03/16 19:35, , 7F
03/16 19:35, 7F
推
03/20 10:16, , 8F
03/20 10:16, 8F
→
03/20 11:50, , 9F
03/20 11:50, 9F
→
03/20 11:52, , 10F
03/20 11:52, 10F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章