2016-07-04 9 views
2

配列の配列の中にキー/変数が表示されている時間を数える必要があります。特定のキーを持つ配列の配列を探す必要があります

配列は次のようになります。

Array 
{ 
[3] => Array 
{ 
[type]=>group 
[name]=>3st group 
[newmsgs]=>3 
} 
[2] => Array 
{ 
[type]=>group 
[name]=>2nd group 
} 
[1] => Array 
{ 
[type]=>group 
[name]=>1st group 
[newmsgs]=>1 
} 
} 

私は価値の「newmsgs」キーを持っている唯一の2の配列があるので、実行され、2を返す関数を探しています。

私はarray_count_values()を試してみただけでなく、私が知っていたシンプルなcount()を試してみると、スリムな機会があります。

これはどのように行うのですか?

答えて

1

がしたい列を抽出し、それらを数える:

$count = count(array_column($array, 'newmsgs')); 
+0

AbraCadaverありがとう、これも完璧に動作します!ちょうどテストして、この作業がu_mulderよりも少しシンプルなように見えるかどうかを確認しなければなりませんでした。 ありがとう! – Yohio

+1

私はAbraCadaver_da_bossではないですか? :-( – AbraCadaver

+1

私はAbraCadaver_da_king:Dと言うだろう – Yohio

1

array_filtersizeofのミックス:

echo sizeof(array_filter($array, function($v) { return !empty($v['newmsgs']); })); 

array_filternewmsgsキーが設定されている要素の配列を返し、sizeofは、この返された配列のサイズを取得します。

+0

u_mulder、あなたはu_mulder_da_bossためにあなたの名前を更新する必要があります。 これは完璧に機能し、エレガントです! ありがとうございます! – Yohio

関連する問題