我有一个复杂的数组,类似的东西:
Array {
k1 => text1
k2 => Array {
k3 =>text2
k4 => Array {
k5 => text3
}
k6 => text4
}
}
我想要回显数组,但要缩进每个子阵列:
key: k1 >> value: text1
Array key: k2 >> values:
key: k3 >> value: text2
Array key: k4 >> values:
key: k5 >> value: text3
key: k6 >> value: text4
如果您需要任何细节,请告诉我。
答案 0 :(得分:4)
这是一个将缩进的递归函数:
(已编辑:缩进对所有子元素都无法正常工作,现在确实如此)
function arrayPrettyPrint($arr, $level = 0) {
foreach($arr as $k => $v) {
for($i = 0; $i < $level; $i++)
echo " "; // You can change how you indent here
if(!is_array($v))
echo($k . " => " . $v . "<br/>");
else {
echo($k . " => <br/>");
arrayPrettyPrint($v, $level+1);
}
}
}
$arr = array(
1, 2, 3,
array( 4, 5,
array( 6, 7, array( 8 )))
);
arrayPrettyPrint($arr);
答案 1 :(得分:2)
这是你的打印数组。
<?php
function print_array($array, $tabs = '') {
$result = '';
if (is_array($array)) {
foreach ($array as $k => $v) {
if (is_array($v)) {
$result .= $tabs . 'Array key: '. $k . ' >> values: ' . PHP_EOL . print_array($v, $tabs."\t");
} else {
$result .= $tabs . 'key: ' . $k . ' value: ' . $v . PHP_EOL;
}
}
} else {
$result = $array . PHP_EOL;
}
return $result;
}
$array = array(
'k1' => 'text1',
'k2' => array(
'k3' => 'text2',
'k4' => array(
'k5' => 'text3'
),
'k6' => 'text4'
)
);
echo print_array($array);
&GT;
答案 2 :(得分:1)
尝试使用此快速功能:
function recurseDisplay($my_array,$padding = 2){
echo "<br />";
foreach($my_array as $item){
if (is_array($item)){
$padding += 10;
for ($p = 0; $p < $padding; $p++){
echo " ";
}
echo "Array: {" ;
recurseDisplay($item,$padding);
echo " <br /> } <br />";
}
else{
for ($p = 0; $p < $padding; $p++){
echo " ";
}
echo "key :" . $item . "<br />";
}
}
}
recurseDisplay($my_array);
答案 3 :(得分:0)
var_dump会为你做这个工作吗?
myVar = Array {
k1 => text1
k2 => Array {
k3 =>text2
k4 => Array {
k5 => text3
}
k6 => text4
}
}
试试吧
的var_dump(myVar的)
答案 4 :(得分:0)
似乎在here之前询问了这个问题。这是KeithGrant
的解决方案function RecursiveWrite($array) {
foreach ($array as $vals) {
echo "\t" . $vals['comment_content'];
RecursiveWrite($vals['child']);
}
}