如何计算具有 1 个条件的所有元素

时间:2021-02-14 20:27:36

标签: php function count

我正在使用这个 PHP 函数 $price = count(SellerProductId);

从输出中计算所有 SellerProductId 但我想忽略这个 [SellerProductId] => Array

例如在这个输出中,期望的结果是 1 而不是 2:

[RowId] => 0
[SellerProductId] => 1_SONJA-450445-40
[ShippingDateMax] => 2021-02-16T13:19:25.333
[ShippingDateMin] => 2021-02-16T13:19:25.333
[Sku] => MP18343394-0006

[RowId] => 1
[SellerProductId] => Array
    (
    )
[ShippingDateMax] => 0001-01-01T00:00:00
[ShippingDateMin] => 0001-01-01T00:00:00
[Sku] => INTERETBCA

我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以将所有 id columns 读入一个数组,然后将其传递给 array_filter 以删除每个 falsy 条目以消除空数组。

$a = [
    ['id' => '1'],
    ['id' => []],
];

var_dump(count($a)); // 2
var_dump(count(array_filter(array_column($a, 'id')))); // 1

工作example

更新答案

要查找所有出现的 "[SellerProductId] => Array",您可以使用 substr_count

工作example

如果文件太大而无法立即在 PHP 中读取,您将不得不分块读取(例如,逐行读取 -> fopen + fgets)。