本文目录一览:
返回如下json数据,php如何才能提取其中的keyPhrases值?
如果我没有猜错,你应该是没有得到关联数据 而是得到的 object类型的数据。所以你无法获取其中的值。
那么首先来看看这个函数: json_decode ( string $json [, bool $assoc ] )
- 作用:接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
- 知识点:这个函数有两个参数。第一个参数json格式的字符串数据,第二个参数是决定其返回值的类型。
- 看看返回值说明:
Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned. 要设置为true才能得到array数据 - 分析:你的问题就在第二个参数,你应该是没有设置,所以就返回了object类型的数据,而不是array.
解答:在后面加上第二个参数true; 示例:json_decode('json',true);
php如何获取json中数据
可以用 $obj=key
的方式直接读取 ,也可以先转换为数组,用遍历数组的方法读取
<?php
$json = '{"a":100,"b":200,"c":300,"d":400,"e":500}';
// 首先将json字符串转换成关联数组
$arr = json_decode($json, true);
// 然后循环读取数据
foreach ($arr as $item) {
echo $item;
echo "<br/>";
}
?>
运行结果:
100
200
300
400
500
PHP遍历键值对数组
可以遍历两次 $a
,第一次取出所有的父级栏目,放入 $newarr
中,第二次将子栏目放入对应的父级栏目数组中, 最后使用 $newarr
即可。
不过这是建立在只有二级栏目的基础上,如果有三级栏目的话就还要麻烦些了。
<?php
$newarr = array();
foreach ($a as $key => $value) {
if ($value['fID'] == 0) {
$cid = $value['cID'];
$newarr[$cid] = $value;
unset($a[$key]);
}
}
foreach ($a as $key => $value) {
if ($value['fID'] != 0) {
$fid = $value['fID'];
$newarr[$fid]['zilanmu'][] = $value;
}
}
?>