2011-09-28 15 views
8

カウント関数が以下のような配列でどのように機能するか教えてください。連想配列を使用したPHPカウント関数

私の考えはそこに4つの要素がありますが発生、出力4に、次のコードのようになります。

$a = array 
(
    "1" => "A", 
    1=> "B", 
    "C", 
    2 =>"D" 
); 

echo count($a); 

答えて

26

countは、あなたが期待どおりに動作しますが、例えばそれはcounts all the elements in an array (or object)です。しかし、四つの要素を含む配列についてのあなたの仮定が間違っている:

  • 「1」は1に等しいので、1 => "B""1" => "A"が上書きされます。
  • 1を定義したため、次の数値インデックスは2になります。 "C"を上書きした2 => "D"を割り当てた場合、 "C"は2 => "C"
  • です。

だからあなたの配列は1 => "B"2 => "D"のみ含まれていますし、あなたが、これはprint_r($a)をすることによって、真であることを確認することができます2. countが与える理由です。これにより、

Array 
(
    [1] => B 
    [2] => D 
) 

http://www.php.net/manual/en/language.types.array.phpを再度実行してください。

5

あなたが唯一作成した配列は、カウントはあなたが要素を上書きしている2を返すので、その中の2つの要素を持っているか数える再帰的な配列を持つ作品

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

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

// normal count 
echo count($food); // output 2 

?> 

Source

1

理解するために、この例を使用することができますあなたの配列に含まれるものを見るには、

print_r($a); 
関連する問題