如何使用PHP从json_encode输出的JSON数据中获取post_title值
如何从JSON字符串中提取'post_title'对应的值?
嘿,我来帮你搞定这个问题!要从你给出的JSON输出里提取post_title的值,只需要两步:先把JSON字符串转换成PHP能处理的数据结构,再访问对应的字段就行。下面给你两种常用的实现方式:
方式一:转换成关联数组(最常用)
我们可以用json_decode()函数,给它传第二个参数true,把JSON转成关联数组,之后就可以通过数组键名来访问值了:
// 先把你的JSON输出存成字符串变量 $jsonString = '{"status":true,"postData":[{"post_id":"3","post_title":"JAVA","post_desc":"JAVA DESCRIPTION","status":"1"},{"post_id":"1","post_title":"PHP API","post_desc":"MAKING PHP API","status":"1"}]}'; // 将JSON字符串转为关联数组 $phpArray = json_decode($jsonString, true); // 遍历postData数组,获取每一个post_title foreach ($phpArray['postData'] as $postItem) { echo $postItem['post_title'] . PHP_EOL; // 会依次输出JAVA、PHP API } // 如果只需要第一个post的title,直接通过索引访问 echo $phpArray['postData'][0]['post_title']; // 输出 JAVA
方式二:转换成对象
如果习惯用对象的方式访问,也可以不用传第二个参数,json_decode()默认会把JSON转成PHP对象,然后通过->来访问属性:
// 同样先存JSON字符串 $jsonString = '{"status":true,"postData":[{"post_id":"3","post_title":"JAVA","post_desc":"JAVA DESCRIPTION","status":"1"},{"post_id":"1","post_title":"PHP API","post_desc":"MAKING PHP API","status":"1"}]}'; // 将JSON字符串转为PHP对象 $phpObj = json_decode($jsonString); // 遍历对象数组,获取每一个post_title foreach ($phpObj->postData as $postItem) { echo $postItem->post_title . PHP_EOL; // 依次输出JAVA、PHP API } // 获取第一个post的title echo $phpObj->postData[0]->post_title; // 输出 JAVA
额外小提示
其实你是从$resultData通过json_encode()得到的JSON,那$resultData本身就是PHP数组对吧?这种情况下不需要先编码再解码,直接操作原数组更高效:
// 直接遍历原$resultData数组 foreach ($resultData['postData'] as $postItem) { echo $postItem['post_title']; }
内容的提问来源于stack exchange,提问作者amit munde
相关产品推荐
相关产品推荐

