将复杂数组转换为简单数组(用于CSV)

时间:2019-07-02 10:02:44

标签: php arrays multidimensional-array

我想将我的复杂数组转换为简单数组,以便将转换后的简单数组导出到CSV文件中。

当前我的数组结构是:

Array
(
[0] => Array
    (
      [_source] => Array
      (
        [block] => Array
        (
          [0] => Kurud
        )
        [district] => Array
        (
          [0] => Dhamtari
        )
        [state] => Array
        (
           [0] => Chhattisgarh
        )
      )
    )
[1] => Array
    (
      [_source] => Array
      (
         [block] => Array
         (
            [0] => North-Bangeluru
         )
         [district] => Array
         (
             [0] => Bangalore
         )
         [state] => Array
         (
             [0] => Karnataka
         )
       )
    )
)

我想将上面的数组转换为下面的给定格式:

array(
  array("block", "district", "state"),
  array("Kurud","Dhamtari","Chhattisgarh"),
  array("North-Bangeluru","Bangalore","Karnataka")
)

因此键将是第一个元素,然后是每个元素及其数据。

这是我尝试过的:

foreach ($array as $key => $value) { 
 if (is_array($value)) { 
   $result = array_merge($result); 
 } 
 else { 
   $result[$key] = $value; 
 } 
} 
print_r(result);

提前谢谢...

1 个答案:

答案 0 :(得分:1)

怎么样:

$keys = array_keys($arr[0]["_source"]);
$res[] = $keys;
foreach($arr as $e) {
    $temp = [];
    foreach($keys as $k)
        $temp[] = $e["_source"][$k][0];
    $res[] = $temp;
}

参考:array-keys

实时示例:3v4l