Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP多维数组计数_Php_Arrays - Fatal编程技术网

PHP多维数组计数

PHP多维数组计数,php,arrays,Php,Arrays,我有以下数组,我想计算“PaymentType”==paypal的元素。我正在使用这种方法 $totalcount=count(数组_过滤器((数组)$data[0],'paypal') 但是得到警告“贝宝”,应该是一个有效的回调” 感谢任何能帮助我朝正确方向前进的回应 Array ( [0] => Array ( [TransactionDate] => 0000-00-00 00:00:00 [TotalAmount] => 0.00

我有以下数组,我想计算“PaymentType”==paypal的元素。我正在使用这种方法 $totalcount=
count(数组_过滤器((数组)$data[0],'paypal')
但是得到警告“贝宝”,应该是一个有效的回调”
感谢任何能帮助我朝正确方向前进的回应

Array
(
[0] => Array
    (
        [TransactionDate] => 0000-00-00 00:00:00
        [TotalAmount] => 0.00
        [PayPalFee] => 2.48
        [PayPalTransactionID] => 92
        [PaymentType] => paypal
    )

[1] => Array
    (
        [TransactionDate] => 0000-00-00 00:00:00
        [TotalAmount] => 0.00
        [PayPalFee] => 2.48
        [PayPalTransactionID] => 3
        [PaymentType] => paypal
    )

[2] => Array
    (
        [TransactionDate] => 2011-05-16 11:15:02
        [TotalAmount] => 75.00
        [PayPalFee] => 2.48
        [PayPalTransactionID] => 2
        [PaymentType] => paypal
    )
)
需要对第二个参数进行回调。您必须编写一个自定义函数,以便仅过滤出所需的结果,如下所示:

$totalcount = count(array_filter($data, function($arr)
{
    return $arr['PaymentType'] == 'paypal';
}));
需要对第二个参数进行回调。您必须编写一个自定义函数,以便仅过滤出所需的结果,如下所示:

$totalcount = count(array_filter($data, function($arr)
{
    return $arr['PaymentType'] == 'paypal';
}));

您的过滤器需要做一些工作:

array_filter($data, function ($datum) { return $datum['paymentType'] == 'paypal'; })

您的过滤器需要做一些工作:

array_filter($data, function ($datum) { return $datum['paymentType'] == 'paypal'; })
array\u filter()
应该返回一个经过过滤的数组(还需要一个回调函数来工作,而不是一个搜索值)——您不需要这样做。这里有一个只计算匹配项的解决方案:

$totalcount = 0;
for ($i = 0, $c = count($data[0]); $i < $c; $i++)
{
    if ($data[0][$i]['PaymentType'] === 'paypal')
        $totalcount++;
}
$totalcount=0;
对于($i=0,$c=count($data[0]);$i<$c;$i++)
{
如果($data[0][$i]['PaymentType']=='paypal')
$totalcount++;
}
array\u filter()
应该返回一个经过过滤的数组(还需要一个回调函数来工作,而不是一个搜索值)-您不需要这样做。这里有一个只计算匹配项的解决方案:

$totalcount = 0;
for ($i = 0, $c = count($data[0]); $i < $c; $i++)
{
    if ($data[0][$i]['PaymentType'] === 'paypal')
        $totalcount++;
}
$totalcount=0;
对于($i=0,$c=count($data[0]);$i<$c;$i++)
{
如果($data[0][$i]['PaymentType']=='paypal')
$totalcount++;
}

array\u filter
将回调作为第二个参数,如文档中所述:。在这里,您还可以找到有关如何使用
array\u filter
array\u filter
将回调作为第二个参数的示例,如文档中所述:。在这里,您还可以找到如何使用
array\u filter
的示例。