无键打印多维数组的值

5
我想打印一个数组,但不知道数组值的维度。 当我使用echo '<pre>'然后使用print_r($array)时,它将显示Keyvalue,并用<br>显示。 但是我只想显示数组的值而不是键。该$array可能包含多维数组值或单个值或两者兼有。

如果您的数组中有多个键/值,您想显示所有还是只显示一个? - lucasem
有关详情,请访问http://www.phpfresher.com/tag/recursion-function/。 - Md Riad Hossain
3个回答

4

您需要使用递归函数:

$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>';
        }
    }
}

4

尝试使用这个递归函数

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;
        }
    }
}

请参见演示


3

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

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
(
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接