2011-09-28 14 views
8

के साथ PHP गणना फ़ंक्शन क्या कोई मुझे बता सकता है कि गिनती फ़ंक्शन नीचे दिए गए सरणी के साथ कैसे काम करता है?एसोसिएटिव ऐरे

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

echo count($a); 

उत्तर

26

count काम करता है बिल्कुल के रूप में आप उम्मीद करेंगे, उदहारण के लिए:

मेरे सोचा कारण वहाँ 4 तत्व हैं, उत्पादन 4 के लिए निम्न कोड होगा यह counts all the elements in an array (or object) है। लेकिन चार तत्वों से युक्त सरणी के बारे में अपनी धारणा गलत है:

  • "1" 1 के बराबर है, इसलिए 1 => "B""1" => "A" ऊपर लिख देगा।
  • क्योंकि आपने 1 परिभाषित किया है, अगला संख्यात्मक सूचकांक 2 होगा, उदा। "सी" 2 => "C"
  • जब आपने 2 => "D" असाइन किया था तो आप "सी" को ओवरराइट करते हैं।

तो अपने सरणी केवल 1 => "B" और 2 => "D" में शामिल होंगे और यही कारण है count देता है 2. आप सत्यापित कर सकते हैं इस print_r($a) करके सच है है। इससे

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

कृपया http://www.php.net/manual/en/language.types.array.php फिर से जाएं।

5

आप को समझने के लिए इस उदाहरण का उपयोग कर सकते हैं कि गिनती पुनरावर्ती सरणियों

<?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

सरणी आपने बनाया है के साथ काम करता केवल उस में दो तत्वों इसलिए गिनती 2. आप तत्वों अधिलेखित कर रहे हैं लौटने है , आपके सरणी उपयोग में क्या देखने के लिए:

print_r($a);