PHP:清除阵列?

时间:2018-01-17 16:25:46

标签: php

我有一个这样的数组:

array(
    [cat] => news,
    [comments_count] => 2,
    [meta] => array(
        [first_meta] => 44,
        [second_meta] => 54,    
    )
)

以上代码是我拥有的数组示例。现在我想让上面的数组清楚如下:

array(
    [cat] => news,
    [comments_count] => 2,
    [first_meta] => 44,
    [second_meta] => 54,    
)

(表示删除-meta-但不是它的索引。我想将meta的索引添加到第一个数组中)

2 个答案:

答案 0 :(得分:4)

meta数组添加到数组中,然后unset添加meta数组:

$array = $array + $array['meta'];
unset($array['meta']);

答案 1 :(得分:1)

如果你有一个多维数组,你可以使用下面的函数,你可以在任何地方重复使用它。

function array_flatten($array) { 
  if (!is_array($array)) { 
    return false; 
  } 
  $result = array(); 
  foreach ($array as $key => $value) { 
    if (is_array($value)) { 
      $result = array_merge($result, array_flatten($value)); 
    } else { 
      $result[$key] = $value; 
    } 
  } 
  return $result; 
}

$array = array(
'cat' => 'news',
'comments_count' => '2',
'meta' => array(
 'first_meta' => '44',
 'second_meta' => '54',    
                 )
);

var_dump(array_flatten($array));

结果将是

array(4) {
  ["cat"]=>
  string(4) "news"
  ["comments_count"]=>
  string(1) "2"
  ["first_meta"]=>
  string(2) "44"
  ["second_meta"]=>
  string(2) "54"
}

否则,如果您只需要在问题中展平meta数组。 {$ 1}}元数组并取消设置array_merge()如下所示。

meta