[英]PHP: find same keys in a multidimensional-array and merge the findings
我有一個多維數組,看起來像這樣:
$array = (
[0] => array (
['WS'] => array(
[id] => 2,
[name] => 'hello'
)
)
),
[1] => array (
['SS'] => array(
[id] => 1,
[name] => 'hello2'
)
)
),
[2] => array (
['WS'] => array(
[id] => 5,
[name] => 'helloAGAIN'
)
)
)
如您所見,$ array [0]和$ array [2]具有相同的鍵[WS]。 我需要一個函數來找到那些“相同的鍵”。 之后,我會將這兩個數組合並為一個。 FE
$array =
(
[0] => array
(
['WS'] => array
(
[0] => array
(
[id] => 2,
[name] => 'hello'
),
[1] => array
(
[id] => 5,
[name] => 'helloAGAIN'
)
)
),
[1] => array
(
['SS'] => array
(
[0] => array
(
[id] => 1,
[name] => 'hello2'
)
)
)
)
希望你們能理解我的問題。 打招呼
function group_by_key ($array) {
$result = array();
foreach ($array as $sub) {
foreach ($sub as $k => $v) {
$result[$k][] = $v;
}
}
return $result;
}
您可以遍歷數組並刪除匹配的元素
$multiArray = array('0' => etc etc);
$matches = array();
foreach(multiArray as $key => $val)
{
$keyValToCheck = key($val);
if(!in_array($keyValToCheck, $matches))
{
$matches[] = $keyValToCheck; // add value to array matches
// remove item from array because match has been found
unset($multiArray[$key][$keyValToCheck]);
}
}
您可以簡單地消除數組的第一級,最終得到的結果如下:
$array = (
['WS'] => array(
[0] => array(
[id] => 2,
[name] => 'hello'
),
[1] => array(
[id] => 5,
[name] => 'helloAGAIN'
)
),
['SS'] => array(
[0] => array(
[id] => 1,
[name] => 'hello2'
)
)
)
這樣,您可以像這樣向數組添加內容:
$array['WS'][] = array();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.