将包含3个数组的二维数组转换为3个单独的数组(php)

3
我正在尝试转换。
    Array ( 
    [0] => Array ( 
          [enero] => 2 [febrero] => 2 [marzo] => 2 [abril] => 4 [mayo] => 4) 
    [1] => Array ( 
          [enero] => 5 [febrero] => 2 [marzo] => 0 [abril] => 3 [mayo] => 4) 
    [2]=>some other arrays

    )

转换为

  Array ([enero] => 2 [febrero] => 2 [marzo] => 2 [abril] => 4 [mayo] => 4) 
  Array ([enero] => 5 [febrero] => 2 [marzo] => 0 [abril] => 3 [mayo] => 4)
  some other arrays 
     

我尝试了这段代码。
foreach ($in as $key => $value) {
                    foreach ($value as $key => $value) {
                        $a[$key]=$value;
                    }
                }

但它只返回最后一个数组。
Array ( [enero] => 7 [febrero] => 9 [marzo] => 2 [abril] => 4 [mayo] => 0 ) 

你有任何想法我可以做什么吗?谢谢


你期望什么输出? - Felippe Duarte
顺便说一下,我已经知道我只有一个变量($a)来获取新数组,但是如何将其他数组保存到不同的变量中呢? - Maurocrispin
仅仅通过将它们设置为新变量?听起来你只是想将每个变量分解成自己的变量。你必须想出变量来保存它们。 - georaldc
我已经投票关闭这个问题,原因是“不清楚你在问什么”,因为你的示例输出与输入数据完全相同,除了输入数据被放在一个数组中。我可以通过foreach ($in as $value) { print_r($value); }来实现你想要的输出,但我确定这不是你的意思。请澄清一下。 - scrowler
你的想法几乎是正确的。你不需要第二个循环。看看我的答案。 - Mojtaba
3个回答

0
假设$a$b$c是新数组,$array是您当前的数组,您可以这样做:
list($a, $b, $c) = $array;

$a$b$c 现在包含内部数组。


0

试试这个:

for ($i = 0; $i < count($in); $i++) {
    ${"single_level_array_" . $i} = $in[$i];
}

这将使数组$in的每个元素本身成为一个数组。如果$in中有三个元素,则会得到$single_level_array_0$single_level_array_1$single_level_array_2


1
非常感谢你的帮助,我真的很感激。这正是我所需要的。 - Maurocrispin
当然,没问题,@Maurocrispin,我很高兴你觉得有帮助。 - Kenny Grage

0
foreach($array as $key => $value) {
  ${'extracted_' .$key} = $value;
}

var_dump($extracted_0);
var_dump($extracted_1);
.
.
.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接