php遍历json中的key键,jsonobject遍历key

发布时间:2023-01-04

本文目录一览:

  1. 返回如下json数据,php如何才能提取其中的keyPhrases值?
  2. php如何获取json中数据
  3. PHP遍历键值对数组

返回如下json数据,php如何才能提取其中的keyPhrases值?

如果我没有猜错,你应该是没有得到关联数据 而是得到的 object类型的数据。所以你无法获取其中的值。 那么首先来看看这个函数: json_decode ( string $json [, bool $assoc ] )

  1. 作用:接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
  2. 知识点:这个函数有两个参数。第一个参数json格式的字符串数据,第二个参数是决定其返回值的类型。
  3. 看看返回值说明:
    Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned. 要设置为true才能得到array数据
  4. 分析:你的问题就在第二个参数,你应该是没有设置,所以就返回了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;
    }
}
?>