从php中的多维数组中删除父数组

时间:2017-05-03 13:43:21

标签: php

使用php如何以下面的方式获取数组结果,

 Array
    (
        [3] => Array
            (
                [15] => 15
                [16] => 16
                [17] => 17
                [18] => 18
                [19] => 19
            )

    )

如何将上面的数组转换为以下格式,

 Array
        (
            [0] => 15
            [1] => 16
            [2] => 17
            [3] => 18
            [4] => 19
        )

5 个答案:

答案 0 :(得分:4)

array_values()是你的朋友;

假设您的数组存在于名为$array;

的变量中
$newArray = array_values($array[3]);

答案 1 :(得分:2)

试试这个,如果你有多个子阵列,它会起作用。

$arr = array(3 =>
        array
          ( 
           15  => 15,
           16 => 16,    
           17    => 17,  
           18    => 18,  
           19    => 19
          )
        );
    $new = array();
        foreach ($arr as $v){
            $new = array_merge($new , array_values($v)) ;
        }
echo "<pre>"; print_r($new);

Working Demo

答案 2 :(得分:1)

尚未对其进行测试,但应按照您的要求进行测试。

<?php
$parent array = array(); // The array which you want to change
$result_array = array(); // The array that will hold the results
foreach( $parent_array as $child_array )
{
    if( is_array( $child_array ) )
    {
        foreach( $child_array as $element )
        {
            $result_array[] = $element
        }
    }
}
echo '<pre>';
print_r($result_array);
echo '</pre>';
?>

答案 3 :(得分:1)

你应该使用 RecursiveArrayIterator 删除父数组

$arr = new RecursiveIteratorIterator(new RecursiveArrayIterator($multidimensional_array));
$new_arr = iterator_to_array($arr, false);

答案 4 :(得分:0)

它非常简单,因为您可以将数组保持变量分配给一个索引的值...

<?php

/* build list */
for($i=15;$i<=19;$i++)
    $b[$i] = $i;
$a[3] = $b;

var_export($a);

/* make array smaller again */
$a = $a[3];

var_export($a);

/* reindexing, just values */
$a = array_values( $a );

var_export($a);

?>

重建索引部分是通过内置函数完成的,也可以在php.net上查看数组的链接函数,你可以用它们做大量的简单操作。