首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用PHP删除空值?

如何用PHP删除空值?
EN

Stack Overflow用户
提问于 2020-09-15 01:57:50
回答 2查看 89关注 0票数 2

我是新接触JSON和PHP的,我在清理这种类型的数组时遇到了问题。在这里,我认为可以工作,但我还不明白它为什么不工作

代码语言:javascript
运行
复制
for ($i = 0; $i < count($items); $i++) {
    if ($items[$i][] === null) {
        unset($items[$i]['']);
    }
}
代码语言:javascript
运行
复制
[
    { 
        "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
    }
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-15 02:20:32

以下是一种方法:

代码语言:javascript
运行
复制
<?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);

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

票数 1
EN

Stack Overflow用户

发布于 2020-09-15 02:02:17

您不需要循环,只需使用array_filter

代码语言:javascript
运行
复制
<?php

$array = array(1 => "PHP code tester Sandbox Online",  2 => null);
print_r($array);

$arrayFiltered = array_filter($array);
print_r($arrayFiltered);

这是一个简短的example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63889507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档