php数组学习(2):判断并过滤JSON字符串中不包含指定键名的解决方案

简介: php数组学习(2):判断并过滤JSON字符串中不包含指定键名的解决方案

项目需求

  1. 一组数据格式需要判断是否存在键名name,如果存在,则直接输出;如果不存在,直接过滤掉;
  2. 使用array_key_exists函数;

数据格式

{
  "err": "",
  "res": "",
  "data": [
    {
      "name": "CVR06",
      "cpu": 13,
      "ddr": 61,
      "disk": 84,
      "wlan": 24,
      "storage": 0,
      "status": {
        "cpu": [
          "正常运行"
        ],
        "disk": "正常运行",
        "wlan": "正常运行",
        "ddr": [
          "正常运行"
        ],
        "storage": "正常运行"
      }
    },
    {
      "name": "CVR03",
      "cpu": 15,
      "ddr": 44,
      "disk": 77,
      "wlan": 43,
      "storage": 0,
      "status": {
        "wlan": "正常运行",
        "ddr": [
          "正常运行"
        ],
        "cpu": [
          "正常运行"
        ],
        "disk": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "name": "CVR04",
      "cpu": 14,
      "ddr": 45,
      "disk": 77,
      "wlan": 33,
      "storage": 0,
      "status": {
        "wlan": "正常运行",
        "ddr": [
          "正常运行"
        ],
        "cpu": [
          "正常运行"
        ],
        "disk": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "name": "CVR07",
      "cpu": 13,
      "ddr": 61,
      "disk": 84,
      "wlan": 30,
      "storage": 0,
      "status": {
        "cpu": [
          "正常运行"
        ],
        "disk": "正常运行",
        "wlan": "正常运行",
        "ddr": [
          "正常运行"
        ],
        "storage": "正常运行"
      }
    },
    {
      "name": "CVR08",
      "cpu": 11,
      "ddr": 56,
      "disk": 84,
      "wlan": 26,
      "storage": 0,
      "status": {
        "wlan": "正常运行",
        "disk": "正常运行",
        "cpu": [
          "正常运行"
        ],
        "ddr": [
          "正常运行"
        ],
        "storage": "正常运行"
      }
    },
    {
      "name": "CVR09",
      "cpu": 12,
      "ddr": 57,
      "disk": 84,
      "wlan": 26,
      "storage": 0,
      "status": {
        "wlan": "正常运行",
        "disk": "正常运行",
        "cpu": [
          "正常运行"
        ],
        "ddr": [
          "正常运行"
        ],
        "storage": "正常运行"
      }
    },
    {
      "cpu": 0,
      "ddr": 0,
      "disk": 0,
      "wlan": 0,
      "storage": 0,
      "status": {
        "cpu": "正常运行",
        "ddr": "正常运行",
        "disk": "正常运行",
        "wlan": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "cpu": 0,
      "ddr": 0,
      "disk": 0,
      "wlan": 0,
      "storage": 0,
      "status": {
        "cpu": "正常运行",
        "ddr": "正常运行",
        "disk": "正常运行",
        "wlan": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "cpu": 0,
      "ddr": 0,
      "disk": 0,
      "wlan": 0,
      "storage": 0,
      "status": {
        "cpu": "正常运行",
        "ddr": "正常运行",
        "disk": "正常运行",
        "wlan": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "cpu": 0,
      "ddr": 0,
      "disk": 0,
      "wlan": 0,
      "storage": 0,
      "status": {
        "cpu": "正常运行",
        "ddr": "正常运行",
        "disk": "正常运行",
        "wlan": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "cpu": 0,
      "ddr": 0,
      "disk": 0,
      "wlan": 0,
      "storage": 0,
      "status": {
        "cpu": "正常运行",
        "ddr": "正常运行",
        "disk": "正常运行",
        "wlan": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "cpu": 0,
      "ddr": 0,
      "disk": 0,
      "wlan": 0,
      "storage": 0,
      "status": {
        "cpu": "正常运行",
        "ddr": "正常运行",
        "disk": "正常运行",
        "wlan": "正常运行",
        "storage": "正常运行"
      }
    },
    {
      "name": "一卡通服务器",
      "cpu": 51,
      "ddr": 73,
      "disk": 19,
      "wlan": 0,
      "storage": 72,
      "status": {
        "cpu": [
          "正常运行"
        ],
        "disk": "正常运行",
        "storage": [
          "正常运行"
        ],
        "ddr": [
          "正常运行"
        ],
        "wlan": "正常运行"
      }
    }
  ]
}


解决方案

//读取JSON数据;
$data = file_get_contents("data.json");
//数组解码;
$arr = json_decode($data, true);
//判断并过滤数组
foreach ($arr["data"] AS $k => $v) {
    if (array_key_exists("name", $arr["data"][$k])) {
        echo $v["name"];
    }
}
//重新组建数组并输出;
$listArr = array();
foreach ($arr["data"] AS $k => $v) {
    if (array_key_exists("name", $arr["data"][$k])) {
        $listArr[] = $v;
    }
}


lockdatav Done !

相关文章
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
3月前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
8天前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
2月前
|
XML JSON 前端开发
json字符串CSS格式化
完成以上步骤后,你便能在网页中看到格式化后的JSON数据,它们将按照CSS定义的样式进行展示,使数据更易于阅读和理解。通过有效地结合JSON和CSS,你可以创建出更加丰富且易于交互的网页内容。
186 64
|
1月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
147 7
|
1月前
|
云安全 存储 小程序
PHP微信小程序解决方案PhpMall
PHP微信小程序解决方案PhpMall
37 0
|
2月前
|
XML JSON 前端开发
json字符串CSS格式化
json字符串CSS格式化
53 4
|
2月前
|
JSON 数据格式 Python
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
|
2月前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
3月前
|
JSON Java 数据格式
Java系列之:生成JSON字符串
这篇文章介绍了两种在Java中生成JSON字符串的方法:使用`JSONObject`类及其`toJSONString`方法来动态生成,以及手动拼接字符串的方式来创建JSON格式的字符串。
Java系列之:生成JSON字符串
下一篇
无影云桌面