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编程之数组操作技巧
【10月更文挑战第30天】在PHP编程的海洋里,数组是一艘承载着数据结构的小船,掌握其操控之道,能让开发者在编码的旅程中乘风破浪。本文将带你领略数组的强大功能,从基础使用到高级应用,一步步揭开数组操作的神秘面纱。准备好你的航海装备,让我们启航吧!
48 4
|
3月前
|
SQL 关系型数据库 MySQL
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
53 9
|
2月前
|
存储 缓存 搜索推荐
优化PHP数组性能
优化PHP数组性能
53 8
|
2月前
|
PHP
在PHP中,字符串操作
在PHP中,字符串操作
32 3
|
2月前
|
PHP
06 一文带你搞定PHP字符串操作
路老师带你深入PHP:本文详细介绍了PHP中的字符串定义、操作及常用函数,包括字符串的定义方式、定界符、字符串操作(如去除空格、获取长度、截取、替换、分割和合成等)。通过实例讲解,帮助你快速掌握PHP字符串处理技巧。
34 2
|
2月前
|
算法 搜索推荐 Java
05 一文解决PHP数组操作
路老师带你深入PHP世界,从数组的基础知识讲起,包括数组的创建、赋值、类型(数字索引数组与关联数组)、多维数组,以及常用数组函数如遍历、统计、查询、添加、删除重复元素和排序等。实例讲解,轻松上手。下期预告:PHP面向对象。
28 2
|
4月前
|
存储 PHP
PHP编程中的数组操作技巧
【9月更文挑战第28天】在PHP编程中,数组是一种基础且强大的数据结构,它可以存储多个值,并且允许我们使用键来访问这些值。本文将介绍一些实用的PHP数组操作技巧,包括创建数组、遍历数组、排序数组和合并数组等。通过掌握这些技巧,你将能够更高效地处理数据和解决实际问题。
|
JSON PHP 数据格式
【PHP】处理返回json时带斜杠
【PHP】处理返回json时带斜杠
145 0
【PHP】处理返回json时带斜杠
|
2月前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
74 0
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####