我找到了以下代码,它可以很好地打印数组的所有元素。如何修改它以打印一个键,然后打印与该键对应的所有值,然后是另一个键,然后是与键对应的所有值?我还想对其进行修改,使其仅打印每个键的前 9 个值(不超过此值)。
function printAll($a) {
if (!is_array($a)) {
echo $a, ' ';
return;
}
foreach($a as $v) {
printAll($v);
}
}
我找到了以下代码,它可以很好地打印数组的所有元素。如何修改它以打印一个键,然后打印与该键对应的所有值,然后是另一个键,然后是与键对应的所有值?我还想对其进行修改,使其仅打印每个键的前 9 个值(不超过此值)。
function printAll($a) {
if (!is_array($a)) {
echo $a, ' ';
return;
}
foreach($a as $v) {
printAll($v);
}
}
我假设您想要一些非编程人类可以理解的东西。
function pretty_dump($arr, $d=1){
if ($d==1) echo "<pre>"; // HTML Only
if (is_array($arr)){
foreach($arr as $k=>$v){
for ($i=0;$i<$d;$i++){
echo "\t";
}
if (is_array($v)){
echo $k.PHP_EOL;
Pretty_Dump($v, $d+1);
} else {
echo $k."\t".$v.PHP_EOL;
}
}
}
if ($d==1) echo "</pre>"; // HTML Only
}
用法:
$myarray=array(
'mammals'=>array(
'cats'=>array(
'cheetah',
'lion',
'cougar'
),
'dogs'=>array(
'big'=>'Scooby',
'small'=>'chihuahua',
'medium'=>array(
'pumi',
'bulldog',
'boxer'
)
),
),
'fish'=>'fish',
'birds'=>array(
'flying'=>array(
'mallard',
'condor',
'gull'
),
'nonflying'=>'emu'
)
);
pretty_dump($myarray);
输出:
mammals
cats
0 cheetah
1 lion
2 cougar
dogs
big Scooby
small chihuahua
medium
0 pumi
1 bulldog
2 boxer
fish fish
birds
flying
0 mallard
1 condor
2 gull
nonflying emu
function printAll($a) {
if (!is_array($a)) {
echo $a, ' ';
return;
}
foreach($a as $k => $value) {
if($k<10){
printAll($k);
printAll($value);
}
}
}
有什么问题print_r
,var_dump
或者var_export
?
除此之外,阅读文档foreach
,您将清楚地了解如何获取您正在迭代的密钥。
function printAll($a) {
foreach ($a as $k => $v) {
echo $k, ' ';
}
printAllVals($a);
}
function printAllVals($a) {
if (!is_array($a)) {
echo $a, ' ';
return;
}
foreach($a as $k => $v) {
if ($k < 10) {
printAllVals($v);
}
}
}
尝试:
foreach($a as $k => $v)
$k
你的钥匙在哪里,$v
仍然是价值。