0

私は次のような配列を持っています:

$resellers =  Array
(
    [40] => Array
        (
            [state] => AB
            [city] => Calgary
        )

    [185] => Array
        (
            [state] => AB
            [city] => Calgary
        )

    [141] => Array
        (
            [state] => AB
            [city] => Calgary
        )

    [41] => Array
        (
            [state] => AB
            [city] => Grande Prairie
        )

    [68] => Array
        (
            [state] => BC
            [city] => Burnaby
        )

    [51] => Array
        (
            [state] => BC
            [city] => Campbell River
        )

    [61] => Array
        (
            [state] => BC
            [city] => Kamloops
        )
  )

「Alberta」(4) と BC (3) の値の数を簡単に数えられる方法はないかと考えていました。

4

4 に答える 4

11
array_count_values(array_map(function($item) {
   return $item['state'];
}, $resellers));
于 2012-11-16T14:26:09.233 に答える
1

それを繰り返して、必要な状態を見つけてください。

function countState($data, $state) {
    $i = 0;
    foreach($data as $point)
        if($point['state'] === $state)
            $i++;

    return $i;
}

echo "Alberta found " . countState($array, "AB") . " times"!
于 2012-11-16T14:28:57.100 に答える
0

試す:

$arr = array(array('state'=>'AB', 'city'=>'Calgary'), ...); //your array 

function count_values( $arr, $value) {
 $count = 0;
 foreach($arr as $v) {
  foreach($v as $m) {
   if( $m['state'] === $value )
    $count++;
  }
 }
 return $count;
}

$count_ab = count_values($arr, 'AB');
$count_bc = count_values($arr, 'BC');
于 2012-11-16T14:23:56.823 に答える
0

Cedrun の回答の助けを借りて解決しました。

構築された配列:

 $state_count = array_count_values( array_map(function($item){return $item['state'];}, $r_resellers));

次に出力します:

echo $state_count["AB"];
于 2012-11-16T14:52:14.333 に答える