多维数组值打印没有任何键


Multi Dimensional array value print without any key

我想打印一个数组,我不知道数组值的维度。现在的事实是,当我使用echo '<pre>'print_r($array)时,它将显示Keyvalue<br>显示。但我只想显示数组的值而不是键。$array可以包含多维数组值,也可以包含单个值,或者同时包含多维数组值。

必须使用递归函数:

$array_list = array('a',array(array('b','c','d'),'e')); // Your unknown array
print_array($array_list);
function print_array($array_list){
    foreach($array_list as $item){
        if(is_array($item)){
            print_array($item);
        }else{
            echo $item.'<br>';
        }
    }
}

试试这个Recursive函数

function print_array($array, $space="")
{
    foreach($array as $key=>$val)
    {
        if(is_array($val))
        {
            $space_new = $space." ";
            print_array($val, $space_new);
        }   
        else
        {
            echo $space." ".$val." ".PHP_EOL;
        }
    }
}
<<p>看到演示/strong>

简而言之,您可以使用递归函数来实现您想要实现的目标:

function print_no_keys(array $array){
    foreach($array as $value){
        if(is_array($value)){
            print_no_keys($value);
        } else {
            echo $value, PHP_EOL;
        }
    }
}

另一种方法是使用array_walk_recursive()


如果你想使用缩进,那么试试这个:

function print_no_keys(array $array, $indentSize = 4, $level = 0){
    $indent = $level ? str_repeat(" ", $indentSize * $level) : '';
    foreach($array as $value){
        if(is_array($value)){
            print_no_keys($value, $indentSize, $level + 1);
        } else {
            echo $indent, print_r($value, true), PHP_EOL;
        }
    }
}

例子:

<?php
header('Content-Type: text/plain; charset=utf-8');
$a = [1, [ 2, 3 ], 4, new stdClass];
function print_no_keys(array $array, $indentSize = 4, $level = 0){
    $indent = $level ? str_repeat(" ", $indentSize) : '';
    foreach($array as $value){
        if(is_array($value)){
            print_no_keys($value, $indentSize, $level + 1);
        } else {
            echo $indent, print_r($value, true), PHP_EOL;
        }
    }
}
print_no_keys($a);
?>
输出:

1
    2
    3
4
stdClass Object
(
)