ホームページ  >  記事  >  バックエンド開発  >  PHPにはcount関数についての説明と解決策が必要です

PHPにはcount関数についての説明と解決策が必要です

WBOY
WBOYオリジナル
2016-06-13 13:17:21874ブラウズ

PHPのcount関数について説明してください

PHPコード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$food = array('fruits' => array('orange', 'banana', 'apple'),
                            'veggie' => array('carrot', 'collard', 'pea'));

              // recursive count
              echo count($food, COUNT_RECURSIVE); // output 8

なぜ8が出力されるのでしょうか? 6じゃないの?

-----解決策--------------------------------
再帰的累積。1 次元統計 2 を追加する必要があります。
------解決策------------------
COUNT_RECURSIVE は文字通り再帰統計を意味します...

オプションのモードパラメータが COUNT_RECURSIVE (または 1) に設定されている場合、count() は配列を再帰的にカウントします。

マニュアルの意味に従って理解してください。ニーズが当てはまらない場合は、自分自身で行ってください。 -書かれた関数、
------解決策------------------
他人があなたに与えるものは必ずしもあなたに合うとは限りません。多くの場合、自分で行う必要があります
count($food, COUNT_RECURSIVE) はすべてのノードの数を返します
必要なのはリーフ ノードの数だけです
PHP コード
$food = 配列(
  'フルーツ' => array('オレンジ', 'バナナ', 'リンゴ'),
  '野菜' => 配列('ニンジン', 'コラード', 'エンドウ豆')
);

関数 leay_count($ar) {
  $r = 0;
  foreach($ar as $item) {
    if(is_array($item)) $r += leay_count($item);
    それ以外の場合は $r++;
  }
  $r を返します。
}

echo leay_count($food);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。