📜  php foreach json 对象 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:29.150000             🧑  作者: Mango

PHP中使用foreach遍历JSON对象

在使用PHP进行web开发时,经常需要处理前端传来的JSON数据。如何使用foreach语句遍历JSON对象呢?下面我们来详细介绍。

1.准备JSON数据

首先,我们需要准备一个JSON数据,代码如下:

{
    "name": "张三",
    "age": 20,
    "gender": "男",
    "hobbies": ["足球", "篮球", "游泳"]
}

该JSON数据表示一个人的基本信息和兴趣爱好。

2.使用PHP解析JSON数据

使用PHP解析JSON数据,可以使用json_decode()函数,该函数将JSON格式的字符串转换成PHP变量。代码如下:

$json_str = '{"name": "张三", "age": 20, "gender": "男", "hobbies": ["足球", "篮球", "游泳"]}';
$json_obj = json_decode($json_str);

该代码将$json_str字符串解析成了一个PHP对象$json_obj

3.使用foreach遍历JSON对象

使用foreach语句遍历JSON对象,需要注意以下几点:

  • JSON对象转换成PHP对象后,成员变量名与JSON键名是一一对应的。
  • 如果JSON键名为字符串,PHP对象成员变量名为键名;如果JSON键名为数字,PHP对象成员变量名为数字字符串。
  • 如果JSON值为数组,PHP对象成员变量值为PHP数组;如果JSON值为对象,PHP对象成员变量值为PHP对象。

代码如下:

foreach ($json_obj as $key => $value) {
    if (is_array($value)) { // 值为数组
        echo "$key:";
        foreach ($value as $item) {
            echo "$item ";
        }
        echo "\n";
    } else if (is_object($value)) { // 值为对象
        echo "$key:\n";
            foreach ($value as $k => $v) {
            echo "    $k: $v\n";
        }
    } else { // 值为其他类型
        echo "$key: $value\n";
    }
}

该代码可以遍历JSON对象并输出其内容。

4.完整代码
$json_str = '{"name": "张三", "age": 20, "gender": "男", "hobbies": ["足球", "篮球", "游泳"]}';
$json_obj = json_decode($json_str);

foreach ($json_obj as $key => $value) {
    if (is_array($value)) { // 值为数组
        echo "$key:";
        foreach ($value as $item) {
            echo "$item ";
        }
        echo "\n";
    } else if (is_object($value)) { // 值为对象
        echo "$key:\n";
        foreach ($value as $k => $v) {
            echo "    $k: $v\n";
        }
    } else { // 值为其他类型
        echo "$key: $value\n";
    }
}

以上是使用foreach遍历JSON对象的完整代码。