【问题标题】:How to flatten array and preserve keys?如何展平数组并保留键?
【发布时间】:2021-05-29 10:39:33
【问题描述】:

我有这个简单的数组:

[
    'key1' => 'value',
    'key2' => 'value',
    'key3' => [
        'u-key1' => 'value',
        'u-key2' => 'value'
    ]
]

我想把它展平成这样的形式:

[
    'key1' => 'value',
    'key2' => 'value',
    'u-key1' => 'value',
    'u-key2' => 'value'
]

我确信在 Laravel 中使用 Collection/Arr 助手有一种简单的方法,但无法弄清楚。

【问题讨论】:

标签: php arrays laravel collections


【解决方案1】:

试试这个: 你的数组:

$arr= [
    'key1' => 'value',
    'key2' => 'value',
    'key3' => [
         'u-key1' => 'value',
         'u-key2' => 'value'
     ]
]

你的功能:

$data = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
foreach($data as $index=> $d) {
   $r[$index]=$d;
}
 print_r($r);

更多详情请点击这里https://www.php.net/manual/en/function.array-column.php

【讨论】:

    【解决方案2】:

    试试这个

    $data = [
        'key1' => 'value',
        'key2' => 'value',
        'key3' => [
            'u-key1' => 'value',
            'u-key2' => 'value'
        ]
    ];
    
    $array = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
    
    foreach ($array as $key => $value) {
      $result[$key] = $value;
    }
    
    print_r($result);
    

    输出:

    Array
    (
        [key1] => value
        [key2] => value
        [u-key1] => value
        [u-key2] => value
    )
    

    您的问题答案DEMO如下

    https://paiza.io/projects/F7G_b_S_skT916OeBrl2xw

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 2013-07-01
      • 2018-05-25
      • 1970-01-01
      • 2022-01-19
      • 2017-06-11
      • 2019-07-30
      • 2017-07-13
      • 2014-03-29
      相关资源
      最近更新 更多