如何在使用array_flatform时保留数组的键名


How to keep key name of array when use array_flatten

在对象中显着返回值,并使用toArray,它看起来像

array (size=1)
   0 => 
    array (size=5)
      'id' => int 60
      'Name' => string 'ttt' (length=3)
      'Age' => int 444
      'created_at' => string '2013-08-31 13:05:38' (length=19)
      'updated_at' => string '2013-08-31 13:05:38' (length=19)

我使用array_flatform来解决这个问题,但它取代了密钥名

 array (size=5)
 0 => int 60
 1 => string 'ttt' (length=3)
 2 => int 444
 3 => string '2013-08-31 13:05:38' (length=19)
 4 => string '2013-08-31 13:05:38' (length=19)

我需要保留密钥名称吗?

假设您的数组位于$data中,只需使用:

$data = $data[0];

使用这个简单的数组,您甚至可以用以下命令"压平"它:

$result = $arr[0];

要使更复杂的二维数组变平,请使用以下方法:

function nowItIsFlat( $arr ) {
  $output = Array();
  foreach( $arr as $key => $val ) {
    if( is_array( $val ) ) {
      $output = array_merge( $output, $val );
    } else {
      $output[$key] = $val;
    }
  }
  return $output;
}

显然,任何重复的密钥都将被覆盖。