1

私の配列は以下です。私がやろうとしているのは、配列内のノードの数をカウントすることです。

配列をループするよりも十分なものはありますか?

Array
(
    [0] => Array
        (
            [id] => 428
            [read_status] => 
        )

    [1] => Array
        (
            [id] => 427
            [read_status] => 
        )
    [2] => Array
        (
            [id] => 441
            [read_status] => new
        )  
    [3] => Array
        (
            [id] => 341
            [read_status] => read
        )  
)

したがって、カウントは 3 になるはずです。

4

3 に答える 3

2

あなたができる

$count = count(array_filter($myArray, function($item){
    return $item['read_status'] != 'new';
}));

echo $count;

しかし、次のようにループする方が効率的だと思います:

$count = 0;
foreach($myArray as $item){
    if($item['read_status'] != 'new')$count++;
}

echo $count;
于 2013-06-28T16:37:29.540 に答える
0

null を完全に削除して実際に SQL を改善したので、read_status は read または new のいずれかになります。

IF(feed_read.read_status IS NULL,'new','read') AS read_status

そこから、「新しい」要素を数えるために別の SO 質問を利用することができました。

$counted = array_count_values(array_map(function($value){return $value['read_status'];}, $result));
echo $counted['new'];
于 2013-06-28T16:41:41.840 に答える