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

 xiao666tian760 发布于 2022-12-01 12:23
"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的值组成一个数组。

4 个回答
  • $arr = json_decode($jobs);
    for ($i=0; $i<count($arr); $i++)
      $result[] = $arr[$i]['mark'];
    
    2022-12-01 14:42 回答
  • 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'));
    
    ?>
    
    2022-12-01 14:42 回答
  • 有一个词叫 JSONPath 懂的自然懂

    来一段Java的

    java版
    https://github.com/alibaba/fastjson/wiki/JSONPath

    js/php
    http://goessner.net/articles/JsonPath/

    只是传播一个概念,当然追求效率自己写也不是很复杂,就是一个遍历

    2022-12-01 14:42 回答
  • php
    $arr = array_column(json_decode($json, true),'mark'); echo $arr[3];//group:4
    2022-12-01 14:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有