php - 如何用 PHP 删除空值?

标签 php json code-cleanup

我刚刚接触 JSON 和 PHP,在清理这种类型的数组时遇到问题。这是我认为可行的,但我还不明白它是如何不起作用的

for ($i = 0; $i < count($items); $i++) {
    if ($items[$i][] === null) {
        unset($items[$i]['']);
    }
}
[
    { 
        "ticketNumber": Ha&51,
        "qty": 0, 
        "title": "Wheat", 
        "price": 44.2,
        "purchaseDate": null,
        "date": null
    },
    { 
        "ticketNumber": H88i51,
        "qty": 2, 
        "title": "Prince",
        "price": 12.99,
        "purchaseDate": null,
        "date": null
    }
]

最佳答案

这是一种方法:

<?php

$s = <<<eof
[{"ticketNumber": "Ha&51","qty": 0,"title": "Wheat", "price":
44.2,"purchaseDate": null,"date": null},{        "ticketNumber": "H88i51","qty":
2, "title": "Prince", "price": 12.99,"purchaseDate": null,"date": null}]
eof;

$m_json = json_decode($s, true);
$f = fn ($v): bool => $v !== null;

foreach ($m_json as $m_tick) {
   $a[] = array_filter($m_tick, $f);
}

var_export($a);

我个人不喜欢这样,因为您将不同类型的值传递给过滤函数。对于强类型语言,这是不允许的。但另一种选择是枚举“好的”属性,因此在这种情况下这似乎是一个很好的折衷方案。

关于php - 如何用 PHP 删除空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63889507/

相关文章:

php - 将本地主机 PHP 转换为 PDF

java - Eclipse 的 Java 格式化/清理操作可以改变运行时行为吗?

json - 将对象从 Spring MVC 3 REST 客户端发送到 REST 提供者

json - SwiftyJSON实现json字符串到swift对象

Java 以 C# 中的样式初始化类

c++ - 代码中 strncpy 到 strcpy 的等效性

javascript - 将值传递到 session.php

php - Raspberry pi 更新 json 文件时出现问题

php - Mysql加入而不替换原始id的值

java - 使用 Gson 解析 JSON(或 java 的替代方案)