首页 > 解决方案 > 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 但它一直返回相同的,如上。

任何帮助将不胜感激。

非常感谢!

标签: phparrays

解决方案


您可能误用了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 "
    }
  }
}

推荐阅读