如何通过重复的键值合并数组
How to merge array by key values which are repeating
我有一个这样的数组,我想要的是将子数组转换为具有多个唯一键的唯一键子数组。我尝试了 array_merge_recursive 函数,但它不起作用,因为我在循环中有多个数组,并且该函数适用于 2 或 3 个数组。
Array
(
[0] => Array
(
[fromWho] => abc@email.se
)
[1] => Array
(
[tid] => 2013-05-05 23:35
)
[2] => Array
(
[answer] => Company
)
[3] => Array
(
[name] => message
)
[4] => Array
(
[label] => Message
)
[5] => Array
(
[fromWho] => bcd@email.se
)
[6] => Array
(
[tid] => 2013-05-05 23:35
)
[7] => Array
(
[answer] => Star Company
)
[8] => Array
(
[name] => name
)
[9] => Array
(
[label] => Name
)
)
我想要这样的数组 数组键顺序无关紧要:
Array
(
[0] => Array
(
[label] => Message
[name] => message
[answer] => Company
[tid] => 2013-05-05 23:35
[fromWho] => abc@email.se
)
[0] => Array
(
[label] => Name
[name] => name
[answer] => Star Company
[tid] => 2013-05-05 23:35
[fromWho] => bcd@email.se
)
)
使用 array_chunk()
将数组分组为 5 个元素的块。然后你可以将每个块转换成一个关联数组。
$chunks = array_chunk($data, 5);
$result = array_map(function($chunk) {
$arr = [];
foreach ($chunk as $entry) {
foreach ($entry as $key => $val) {
$arr[$key] = $val;
}
}
return $arr;
}, $chunks);
我有一个这样的数组,我想要的是将子数组转换为具有多个唯一键的唯一键子数组。我尝试了 array_merge_recursive 函数,但它不起作用,因为我在循环中有多个数组,并且该函数适用于 2 或 3 个数组。
Array
(
[0] => Array
(
[fromWho] => abc@email.se
)
[1] => Array
(
[tid] => 2013-05-05 23:35
)
[2] => Array
(
[answer] => Company
)
[3] => Array
(
[name] => message
)
[4] => Array
(
[label] => Message
)
[5] => Array
(
[fromWho] => bcd@email.se
)
[6] => Array
(
[tid] => 2013-05-05 23:35
)
[7] => Array
(
[answer] => Star Company
)
[8] => Array
(
[name] => name
)
[9] => Array
(
[label] => Name
)
)
我想要这样的数组 数组键顺序无关紧要:
Array
(
[0] => Array
(
[label] => Message
[name] => message
[answer] => Company
[tid] => 2013-05-05 23:35
[fromWho] => abc@email.se
)
[0] => Array
(
[label] => Name
[name] => name
[answer] => Star Company
[tid] => 2013-05-05 23:35
[fromWho] => bcd@email.se
)
)
使用 array_chunk()
将数组分组为 5 个元素的块。然后你可以将每个块转换成一个关联数组。
$chunks = array_chunk($data, 5);
$result = array_map(function($chunk) {
$arr = [];
foreach ($chunk as $entry) {
foreach ($entry as $key => $val) {
$arr[$key] = $val;
}
}
return $arr;
}, $chunks);