我有一个数组,其中包含数据如下:
[
0 => ['www.google.com' => 'www.google.com/a'],
1 => ['www.google.com' => 'www.google.com/a'],
2 => ['www.test.com' => 'www.test.com'],
5 => ['www.test.com' => 'www.test.com/c'],
]
我需要对特定网址的所有链接进行分组,如下所示:
Array (
[www.google.com] => Array (
[0] => www.google.com/a
[1] => www.google.com/a
)
[www.test.com] => Array (
[0] => www.test.com
[1] => www.test.com/c
)
)
如果我们调用第一个数组
$domains
。
$groups = array();
for ($i = 0; $i <= count($domains); $i++)
{
foreach ($domains[$i] as $domain => $url)
{
$groups[$domain][] = $url;
}
}
print_r($groups);
这可能有用...
只需使用两个循环来访问嵌套的关联元素,并按二级键对数据进行分组,同时将值推入子数组中。 演示
$result = [];
foreach ($array as $row) {
foreach ($row as $k => $v) {
$result[$k][] = $v;
}
}
var_export($result);
输出:
array (
'www.google.com' =>
array (
0 => 'www.google.com/a',
1 => 'www.google.com/a',
),
'www.test.com' =>
array (
0 => 'www.test.com',
1 => 'www.test.com/c',
),
)