我想打印一个数组,我不知道数组值的维度。现在的事实是,当我使用echo '<pre>'
和print_r($array)
时,它将显示Key
和value
与<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
(
)