ホームページ  >  記事  >  バックエンド開発  >  php では、count は多次元配列の長さを取得し、多次元配列が空かどうかを判断します。 コード例

php では、count は多次元配列の長さを取得し、多次元配列が空かどうかを判断します。 コード例

怪我咯
怪我咯オリジナル
2017-07-10 13:51:011595ブラウズ

この記事では主に 多次元配列 の長さを取得するための計算方法を紹介し、配列の原理を分析し、配列の長さを計算する方法をまとめています。参考にしてください

この記事では、多次元配列の長さを取得するためのPHPでのcountの実装方法を例に説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:

まず、次のプログラムの実行結果を見てみましょう:

コードは次のとおりです:

$numb=array( 
            array(10,15,30),array(10,15,30),array(10,15,30) 
); 
  
echo count($numb,1);

A.3
B.12
C.6
D.9
答えは、B
count関数の場合です。モードがCOUNT_RECURSIVE(または1)に設定されている場合、多次元配列内の配列の要素の数が再帰的に計算されます(つまり、結果では12)。モードが設定されていない場合、デフォルトは 0 になります。多次元配列 (配列内の配列) は検出されません (結果 3)。

最初に走査するのは外側の 配列です 2 つの要素 ("color1"、"color2"、"color3") があり、それは 3 であることがわかります
次に、("color1"、"color2") を走査します。 ", "color3") 配列 結果は要素が 9 個 9 になります
結果は 3+9=12 になります

参考例:

コードは以下の通りです:

<?php
$fruits = array (
    array (1, 2,null,null, 5, 6),
    array (1, 2,null,null, 5, 6),
);
echo(count($fruits[0]));
?>

配列が他で定義されている場合

コードは次のとおりです:

<?php
$fruits[0][0]=1;
$fruits[0][3]=1;
$fruits[0][4]=1;
echo(count($fruits[0]));
?>

PHP の配列では index が連続である必要がないため、これは 3 を出力します。リファレンス マニュアルには次の段落があります:

Array :
PHP の配列は実際には順序付けされたグラフです。グラフは値をキーにマッピングするタイプです。この型はさまざまな方法で最適化されているため、実際の配列、リスト (ベクトル)、ハッシュ テーブル (グラフの実装)、辞書、セット、スタック、キュー などと同様に使用できます。別のPHP配列を値として使用できるので、ツリーのシミュレーションも簡単に行えます。

例:

2 次元または多次元配列の最初の次元の長さを取得する これは、一般的なプログラムの判断です。たとえば、読み込んだ配列は 2 次元配列です:

コードは次のとおりです:

<?php
$arr=array(
 0=>array(&#39;title&#39; => &#39;新闻1&#39;, &#39;viewnum&#39; => 123, &#39;content&#39; => &#39;ZAQXSWedcrfv&#39;),
 1=>array(&#39;title&#39; => &#39;新闻2&#39;, &#39;viewnum&#39; => 99, &#39;content&#39; => &#39;QWERTYUIOPZXCVBNM&#39;)
);
?>

配列 $arr の長さをカウントしたい場合、つまり、2 次元配列にはニュースが 2 つしかない場合、必要な数も 2 ですが、次のように使用するとcount($arr) の PHP バージョンが異なると、統計結果も異なります ;

その後、

php マニュアル で count 関数には 2 番目のパラメーターがあることがわかりました。これについては次のように説明されています。

count 関数には 2 つあります。パラメータ:

0 (または COUNT_NORMAL) がデフォルトで、(配列内の) 多次元配列は検出されません。

1 (または COUNT_RECURSIVE) は多次元配列を検出します。読み取った配列 $arr にニュース情報があるかどうかを判断するには、次のように記述する必要があります:

コードは次のとおりです:

<?php
if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )
{
  .....
} else {
  .....
}
?>
このようなコードを使用して関数をテストできます:

コードは次のとおりです:

<?php
$arr=array(
 0=>array(&#39;title&#39; => &#39;新闻1&#39;, &#39;viewnum&#39; => 123, &#39;content&#39; => &#39;ZAQXSWedcrfv&#39;),
 1=>array(&#39;title&#39; => &#39;新闻2&#39;, &#39;viewnum&#39; => 99, &#39;content&#39; => &#39;QWERTYUIOPZXCVBNM&#39;)
);
echo &#39;不统计多维数组:&#39;.count($arr,0);//count($arr,COUNT_NORMAL)
echo "<br/>";
echo &#39;统计多维数组:&#39;.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>

さて、この時点で、PHP で 2 次元または多次元配列の最初の次元の長さを取得する問題は解決されました。

以下は、多次元配列が空かどうかを判断するコードの例です。コードは次のとおりです。

以上がphp では、count は多次元配列の長さを取得し、多次元配列が空かどうかを判断します。 コード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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