PHP计数多维数组中数组项的出现次数

PHP计数多维数组中数组项的出现次数,php,arrays,Php,Arrays,不再需要此帖子。您可以创建一个数组来保存计数。将状态用作键并递增值 $statuses = array('SHIPPED', 'FAILED', 'COMPLETED'); $output = array_fill_keys($statuses, 0); foreach ($response as $feedback) { foreach($statuses as $status){ if($feeedback->status === $status){

不再需要此帖子。

您可以创建一个数组来保存计数。将状态用作键并递增值

$statuses = array('SHIPPED', 'FAILED', 'COMPLETED');
$output = array_fill_keys($statuses, 0);

foreach ($response as $feedback) {
    foreach($statuses as $status){
        if($feeedback->status === $status){
            $output[$status]++;
        }
    }

}
试试这个:

<?php

$response = array(
    (object) array(
        'status' => 'SHIPPED',
        'country' => 'UNITED STATES'
    ),
    (object) array(
        'status' => 'FAILED',
        'country' => 'UNITED STATES'
    ),
    (object) array(
        'status' => 'SHIPPED',
        'country' => 'UNITED STATES'
    ),
    (object) array(
        'status' => 'COMPLETED',
        'country' => 'UNITED STATES'
    ),
    (object) array(
        'status' => 'SHIPPED',
        'country' => 'UNITED STATES'
    ),
    (object) array(
        'status' => 'FAILED',
        'country' => 'UNITED STATES'
    )
);

$results = array();
foreach ($response as $data) {
    // +1 to each of the status count here
    $results[$data->status] = isset($results[$data->status]) ? $results[$data->status]+1 : $results[$data->status] = 1;
}

echo '<pre>';
echo '$results: ' . print_r($results, true);
echo '</pre>';

为输出创建一个数组。然后您可以执行类似于
$output[$status]++
@RocketHazmat你有可能的例子吗?最好的方法是什么+不要自己尝试+你有可能的例子吗?听起来我好像一点线索也没有,请帮我做。@AlanMachado谢谢你的有用输入。请不要破坏你的帖子。