php - PHP Array - 删除空元素,仅获取填充字符串
问题描述
我在 PHP 中有以下数组,我从 JSON 文件中提取。我尝试执行 foreach 仅获取供应商名称,但无济于事。
理想情况下,我只想返回 CB DESIGN 和 DESIGN COMPANY,但无论何时我尝试过,它都会返回以下内容:
array(4322)
[0]=> array(1) {["supplier"]=> array(0) { }}
[1]=> array(1) {["supplier"]=> array(0) { }}
[2]=> array(1) {["supplier"]=> array(0) { }}
[3]=> array(1) {["supplier"]=> array(1) {[0]=> string(29) " CB DESIGN "}}
[4]=> array(1) {["supplier"]=> array(1) {[0]=> string(19) " DESIGN COMPANY "}}
我只想返回公司名称,有没有办法去除空元素,我尝试使用 array_filter 但它一直返回相同的,如上。
任何帮助将不胜感激。
非常感谢!
解决方案
您可能误用了array_filter。
此代码仅返回非空元素supplier
输入:
$arr = [
["supplier" => []],
["supplier" => []],
["supplier" => []],
["supplier" => [" CB DESIGN "]],
["supplier" => [" DESIGN COMPANY "]],
];
$arrFiltered = array_filter($arr, function($item) {
return !empty($item["supplier"]);
});
输出:
array(2) {
[3]=>
array(1) {
["supplier"]=>
array(1) {
[0]=>
string(11) " CB DESIGN "
}
}
[4]=>
array(1) {
["supplier"]=>
array(1) {
[0]=>
string(16) " DESIGN COMPANY "
}
}
}