遍历复杂的 json 数组
Iterating through complex json array
我通过 ajax post 收到以下多维数组:
array(1) {
["result"] => array(3) {
[0] => array(2) {
[0] => string(1)
"0" [1] => array(2) {
["id"] => string(5)
"1§10" ["children"] => array(2) {
[0] => array(1) {
["id"] => string(6)
"1§3[=11=]"
} [1] => array(1) {
["id"] => string(6)
"1§1[=11=]"
}
}
}
} [1] => array(2) {
[0] => string(1)
"1" [1] => array(1) {
["id"] => string(5)
"3§20"
}
} [2] => array(2) {
[0] => string(1)
"2" [1] => array(2) {
["id"] => string(5)
"2§30" ["children"] => array(1) {
[0] => array(1) {
["id"] => string(6)
"2§2[=11=]"
}
}
}
}
}
}
有没有办法 return 只用 php 一个一个地字符串?数组中字符串的深度无关紧要,因为我只会解析和分解 id 字符串。
您可以将简单的 recorsice 函数实现为:
function printString($arg) {
if (is_string($arg))
echo $arg . PHP_EOL;
else (is_array($arg)) {
foreach($arg as $e)
printString($e);
}
}
或使用array_walk_recursive
作为:
function printStr($item, $key) {
echo $item . PHP_EOL;
}
array_walk_recursive($arr, 'printStr');
如果您只需要"id"字符串,请执行:
function printId($item, $key) { if ($key == "id") echo $item . PHP_EOL; }
array_walk_recursive($arr, 'printId');
我通过 ajax post 收到以下多维数组:
array(1) {
["result"] => array(3) {
[0] => array(2) {
[0] => string(1)
"0" [1] => array(2) {
["id"] => string(5)
"1§10" ["children"] => array(2) {
[0] => array(1) {
["id"] => string(6)
"1§3[=11=]"
} [1] => array(1) {
["id"] => string(6)
"1§1[=11=]"
}
}
}
} [1] => array(2) {
[0] => string(1)
"1" [1] => array(1) {
["id"] => string(5)
"3§20"
}
} [2] => array(2) {
[0] => string(1)
"2" [1] => array(2) {
["id"] => string(5)
"2§30" ["children"] => array(1) {
[0] => array(1) {
["id"] => string(6)
"2§2[=11=]"
}
}
}
}
}
}
有没有办法 return 只用 php 一个一个地字符串?数组中字符串的深度无关紧要,因为我只会解析和分解 id 字符串。
您可以将简单的 recorsice 函数实现为:
function printString($arg) {
if (is_string($arg))
echo $arg . PHP_EOL;
else (is_array($arg)) {
foreach($arg as $e)
printString($e);
}
}
或使用array_walk_recursive
作为:
function printStr($item, $key) {
echo $item . PHP_EOL;
}
array_walk_recursive($arr, 'printStr');
如果您只需要"id"字符串,请执行:
function printId($item, $key) { if ($key == "id") echo $item . PHP_EOL; }
array_walk_recursive($arr, 'printId');