取出json数据中的某一项组成一个数组?

"jobs": [
                    {
                        "name": "iOS开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:1"
                    },
                    {
                        "name": "金融集团CEO",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "北京",
                        "mark": "group:2"
                    },
                    {
                        "name": "运维开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "上海",
                        "mark": "group:3"
                    },
                    {
                        "name": "资深视觉设计师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:4"
                    }
                    ]

怎么取出json数据中的mark这一项,例如我需要取group:4这个值得时候就可以用数组下标的方式,或者我怎么单独取出group:4这个数值?如果我想取出group后面的值呢,例如group:1取出1,用group的值组成一个数组。

阅读 10.2k
4 个回答
$arr = json_decode($jobs);
for ($i=0; $i<count($arr); $i++)
  $result[] = $arr[$i]['mark'];

javascript比较多,很少写PHP了,可能PHP的数组有更好的API

<?php
$jsonString = '[
                    {
                        "name": "iOS开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:1"
                    },
                    {
                        "name": "金融集团CEO",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "北京",
                        "mark": "group:2"
                    },
                    {
                        "name": "运维开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "上海",
                        "mark": "group:3"
                    },
                    {
                        "name": "资深视觉设计师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:4"
                    }
                    ]';



function GetSubArray($jsonString, $mark) {
    // json字符串转数组
    $array = json_decode($jsonString, true);
    // 创建需要返回的新数组
    $newArray = [];
    // 遍历数组,根据$mark条件,添加到新数组中去
    for ($i = 0; $i < count($array); $i++) {
        if ($array[$i]['mark'] === $mark) {
            array_push($newArray, $array[$i]);
        }
    }
    return $newArray;
}

var_dump(GetSubArray($jsonString, 'group:4'));

?>
php
$arr = array_column(json_decode($json, true),'mark'); echo $arr[3];//group:4
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏