【问题标题】:Bidimenstional array with 3 arrays inside to a 3 single ones php二维数组,内部有 3 个数组到 3 个单个 php
【发布时间】:2016-10-02 18:19:49
【问题描述】:

我正在尝试转换

    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 ) 

你知道我能做什么吗?谢谢

【问题讨论】:

  • 你期望什么输出?
  • 顺便说一句,我已经知道我只有一个变量 ($a) 来获取新数组,但是如何将其他数组保存到不同的变量中。
  • 只需将它们设置为新变量?听起来您只想将每个分解成自己的变量。你必须想出变量来保存它们。
  • 我已投票决定将其关闭为“不清楚您在问什么”,因为您的示例输出与您的输入数据相同,除了输入位于数组内。我可以使用foreach ($in as $value) { print_r($value); } 实现您想要的输出,但我确定这不是您的意思。请澄清。
  • 你的想法几乎是对的。您不需要第二个循环。看看我的回答

标签: php arrays


【解决方案1】:

试试这个:

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

【讨论】:

  • 非常感谢你。我真的很感谢你的帮助。这就是我需要的
  • 当然,没问题,@Maurocrispin,很高兴你发现它有帮助。
【解决方案2】:

假设 $a$b$c - 新数组和 $array - 是您当前的数组,您可以这样做:

list($a, $b, $c) = $array;

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

【讨论】:

    【解决方案3】:
    foreach($array as $key => $value) {
      ${'extracted_' .$key} = $value;
    }
    
    var_dump($extracted_0);
    var_dump($extracted_1);
    .
    .
    .
    

    【讨论】:

      猜你喜欢
      • 2021-09-25
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      相关资源
      最近更新 更多