0
我有一个数组数组。每个嵌套数组包含两个逗号分隔值的成员。我想要做的是将这些嵌套数组分解为多个数组。拆分嵌套数组可能更简单的方法
因此,例如,如果我有阵列的下面阵列...
Array
(
[0] => Array
(
[a] => 'single value',
[b] => '1,2',
[c] => 'left, right'
],
[1] => Array
(
[a] => 'single value',
[b] => '4,5',
[c] => 'top, middle'
)
)
...我将最终想用以下到结束。
Array
(
[0] => Array
(
[a] => 'single value',
[b] => '1',
[c] => 'left'
)
[1] => Array
(
[a] => 'single value',
[b] => '1',
[c] => 'right'
)
[2] => Array
(
[a] => 'single value',
[b] => '2',
[c] => 'left'
)
[3] => Array
(
[a] => 'single value',
[b] => '2',
[c] => 'right'
)
[4] => Array
(
[a] => 'single value',
[b] => '4',
[c] => 'top'
)
[5] => Array
(
[a] => 'single value',
[b] => '4',
[c] => 'bottom'
)
[6] => Array
(
[a] => 'single value',
[b] => '5',
[c] => 'top'
)
[7] => Array
(
[a] => 'single value',
[b] => '5',
[c] => 'bottom'
)
)
我可以用一系列嵌套的foreach循环来实现这一目标,但似乎真的效率低下 - 尤其是在考虑到一些b和c的值可以包含多个元素。
$new_array = [];
foreach($array as $a)
{
foreach(explode(',', $a['b']) as $b)
{
foreach(explode(',', $a['c']) as $c)
{
$d = [
'a' => $a['a'],
'b' => $b,
'c' => $c
];
$new_array[] = $d;
}
}
}
有没有更好的方法来分割这些使用数组函数?
谢谢
您为什么认为这样效率低下?您添加到新阵列中的元素数量恰好是它发生的次数......您无法减少它。无论如何,这个问题超出了StackOverflow的范围。你可以尝试[CodeReview](https://codereview.stackexchange.com),但我会考虑把所有问题放在一起。 – trincot