我在下面有这个关联数组:
Array
(
[0] => Array
(
[0] => Category
[1] => fruit
[2] => carbs
)
[1] => Array
(
[0] => Day 1 - Program
[1] => Eat banana
[2] => Eat bread
)
[2] => Array
(
[0] => Day 1 - record
[1] =>
[2] =>
)
)
每个数组索引与其他数组中的相同索引相关。 我现在需要通过组合索引来创建3个数组。完成的阵列会 看起来像这样:
Array
(
[0] => Array
(
[0] => Category
[1] => Day 1 - Program
[2] => Day 1 - record
)
[1] => Array
(
[0] => fruit
[1] => Eat banana
[2] =>
)
[2] => Array
(
[0] => carbs
[1] => bread
[2] =>
)
)
空槽是我知道放置文本框来记录数据的地方。 我已经尝试嵌套循环和其他东西,但没有任何工作。 如何基于索引将数组组合成多维数组?
答案 0 :(得分:2)
$output = call_user_func_array(
'array_map',
array_merge(
array(NULL),
$input
)
);
答案 1 :(得分:1)
您可以使用嵌套循环实现此目的。首先循环遍历子数组。在每次迭代中,遍历子数组中的元素,并将它们添加到结果数组中。这里的重要部分是我们用作$result
数组的索引。 $index
将是子数组中数组元素的位置。例如,Category
的索引为0,因此会将其推送到$result[0][]
。
foreach ($array as $sub) {
foreach ($sub as $index => $val) {
$result[$index][] = $val;
}
}
print_r($result);
答案 2 :(得分:1)
这是一个快速的方法 - 它实际上翻转了键。顺便说一下,你拥有的第一个数组是一个索引数组,而不是一个关联数组。
$input = array(
array
(
"Category", "fruit", "carbs"
),
array
(
"Day 1 - Program","Eat banana","Eat bread"
),
array
(
"Day 1 - record", "", ""
)
);
foreach ($input as $key => $array){
foreach ($array as $k => $v){
$output[$k][$key] = $input[$key][$k];
}
}
print_r($output);