使用 array_map 替代 print_r 以产生 'cleaner' 输出
Using array_map to make an alternative to print_r to produce a 'cleaner' output
我需要比 print_r 给我
更干净的输出
像
这样的数组
$array = array(1,2,3,"four"=>array(4.1,4.2));
应该打印出这样的东西
0: 1
1: 2
2: 3
[four]
0: 4.1
1: 4.2
我想到了这个,但是 array_map 没有 return 我所期望的
function print_array($array) {
$string = "";
foreach ( $array as $key => $value ) {
if (is_array ( $value )) {
$string .= "[" . $key . "]\r\n" . array_map ( 'print_array', $value );
} else {
$string .= $key . ": " . $value . "\r\n";
}
}
return $string;
}
这个输出是
0: 1
1: 2
2: 3
[four]
Array
我的array_map用法显然是错误的,谁能赐教吗?
使用它可能会帮助你,如果值是一个数组,递归调用你的函数。
<?php
function print_array($array) {
$string = "";
foreach ( $array as $key => $value ) {
if (is_array ( $value )) {
$string .= "[" . $key . "]\r\n" . print_array($value );
} else {
$string .= $key . ": " . $value . "\r\n";
}
}
return $string;
}
$array = array(1,2,3,"four"=>array(4.1,4.2));
print_r(print_array($array));
?>
输出
0: 1
1: 2
2: 3
[four]
0: 4.1
1: 4.2
这种打印方式其实不需要array_map
。以下使用您自己的功能的最大部分。它未经测试,但应该可以帮助您朝着正确的方向前进。
function print_array($source) {
$string = "";
foreach ($sorce as $key => value) {
if (is_array($value)) {
$string .= $key . ": array (\r\n";
$string .= print_array($value);
$string .= ")\r\n";
} else {
$string .= $key . ": " . $value . "\r\n";
}
}
return $string;
}
echo print_array($myArray);
我需要比 print_r 给我
更干净的输出像
这样的数组$array = array(1,2,3,"four"=>array(4.1,4.2));
应该打印出这样的东西
0: 1
1: 2
2: 3
[four]
0: 4.1
1: 4.2
我想到了这个,但是 array_map 没有 return 我所期望的
function print_array($array) {
$string = "";
foreach ( $array as $key => $value ) {
if (is_array ( $value )) {
$string .= "[" . $key . "]\r\n" . array_map ( 'print_array', $value );
} else {
$string .= $key . ": " . $value . "\r\n";
}
}
return $string;
}
这个输出是
0: 1
1: 2
2: 3
[four]
Array
我的array_map用法显然是错误的,谁能赐教吗?
使用它可能会帮助你,如果值是一个数组,递归调用你的函数。
<?php
function print_array($array) {
$string = "";
foreach ( $array as $key => $value ) {
if (is_array ( $value )) {
$string .= "[" . $key . "]\r\n" . print_array($value );
} else {
$string .= $key . ": " . $value . "\r\n";
}
}
return $string;
}
$array = array(1,2,3,"four"=>array(4.1,4.2));
print_r(print_array($array));
?>
输出
0: 1
1: 2
2: 3
[four]
0: 4.1
1: 4.2
这种打印方式其实不需要array_map
。以下使用您自己的功能的最大部分。它未经测试,但应该可以帮助您朝着正确的方向前进。
function print_array($source) {
$string = "";
foreach ($sorce as $key => value) {
if (is_array($value)) {
$string .= $key . ": array (\r\n";
$string .= print_array($value);
$string .= ")\r\n";
} else {
$string .= $key . ": " . $value . "\r\n";
}
}
return $string;
}
echo print_array($myArray);