PHP通过除去空键
我需要从阵列获取数据简化JSON数组,但输出总是变化,从而有时它有更多的空键等PHP通过除去空键
$id = "1"; $url = file_get_contents("http://example.com/?api={$id}");
$json = json_decode($url, true);
foreach($json as $data)
{
echo $data[0][0]["test"];
}
的问题是,从它打印值必须始终将空键的数量设置为echo $data[0][0]["test"];
无论有多少空键,在任何情况下如何才能使echo $data["test"];
成为可能?
编辑: JSON数组
[ [
{
"test: "testing"
}
]
]
回答:
function printValue($array) foreach($array as $value){
if(is_array($value)){
printValue($value)
}
else
echo $value;
}
}
基本上是一个递归函数,如果值是array
向下挖掘它在其他打印值。
这将适用于所有的深度,无论是在二级还是四级。
回答:
之前只需使用json_decode一次每个。例如:$ json = json_decode(json_decode($ url));
回答:
你可以为了创建一个递归函数来搜索键和返回它:
$json = '[ [
{
"test" : "testing"
}
]
]';
//Cast to array the json
$array = json_decode($json,true);
echo searchKey("test",$array);
function searchKey($key,$array) {
//If key is defined, print it
if (isset($array[$key])) {
return $array[$key];
}
//Else, search deeper
else {
foreach ($array as $value) {
if (is_array($value)) {
return searchKey($key,$value);
}
}
}
}
以上是 PHP通过除去空键 的全部内容, 来源链接: utcz.com/qa/266680.html