2011-06-14 13 views
12

मैं एक सरणीमैं कैसे जांचूं कि किसी सरणी में सभी कुंजियों में PHP में खाली मान हैं या नहीं?

$array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null); 

है मैं निर्धारित करने के लिए करता है, तो सभी सरणी कुंजी खाली मान हैं यदि ऐसा है तो फिर झूठे वापसी चाहते हैं। उपर्युक्त उदाहरण झूठी वापसी करनी चाहिए क्योंकि इसका कोई मूल्य नहीं है। लेकिन यदि एक या अधिक कुंजियों के पास कोई मान है तो इसे सही वापस करना चाहिए उदाहरण के लिए नीचे दिया गया उदाहरण सत्य है।

$array = array('key1', 'key2' => value2, 'key3', 'key4' => value4); 
+1

सभी कुंजियाँ मूल्यों की क्या ज़रूरत है, कुंजी सिर्फ तुम क्या नहीं लगता है कि वे कर रहे हैं। 'सरणी ( [0] => कुंजी 1 [1] => कुंजी 2 [2] => key3 [3] => key4 )' और 'सरणी ( [0] => कुंजी 1 [कुंजी 2 ] => मूल्य 2 [1] => key3 [key4] => value4 ) क्रमशः। – Quentin

+0

क्षमा करें, मुझे पता था, और मैं बिंदु खो रहा था :) –

उत्तर

39

मान लिया जाये कि आप वास्तव में की तरह

array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null) 

एक सरणी मतलब जवाब बस

if (!array_filter($array)) { 
    // all values are empty (where "empty" means == false) 
} 
+0

हाँ, यह वही है जो मेरा मतलब था :)। और मैं इसकी तलाश में था। धन्यवाद –

4

आपकी धारणा गलत है। array('key1', 'key2', 'key3', 'key4') में 0..3 श्रेणी में 4 मान और कुंजी हैं।

array('key1', 'key2' => value2, 'key3', 'key4' => value4) मूल्य key1 (कुंजी 0 के साथ), कुंजी key2, मूल्य key3 और चाबी key4 (कुंजी 1) के साथ है।

+0

@ इब्राहिम: 'print_r ($ array) 'आज़माएं, फिर आपको देखना चाहिए कि आप सरणी कैसा दिखता है। blagovest पूरी तरह से सही है। – Fender

+0

आह हाँ, मैं बिंदु खो रहा था :) –

0
$flag = 0; 
foreach($array as $keys) 
{ 
     if(!isempty($keys)) { 
     $flag++; 
     } 
} 

if(flag > 0) 
{ 
    echo "Array not empty!"; 
} 
else { 
    echo "Array empty!"; 
} 

काम करना चाहिए।

+0

isempty() सही वाक्यविन्यास नहीं है यह जांचने के लिए कि सरणी कुंजियों में इमोटा मान हैं या नहीं। सही वाक्यविन्यास सिर्फ खाली है()। :)। अभी भी धन्यवाद, मैं समझ गया कि आपने क्या समझाया है। –

+0

मेरी गलती। : पी थोड़ी देर में PHP को छुआ नहीं है। : डी – Anonymous

2

@Blagovest आपके गलत प्रश्न प्रस्तुति के बारे में सही है।

$allEmpty = true; 
foreach($array as $key => $val) { 
    if(isset($array[$key])) { 
     $allEmpty = false; 
     break; 
    } 
} 

// Do what you will with $allEmpty 
1

मुझे लगता है कि तुम क्या मतलब है की जाँच करने के सभी कुंजियों सांख्यिक हैं या यदि कम से कम एक स्ट्रिंग है कि क्या है:

$ok = false; 
foreach(array_keys($array) as $key){ 
    if(is_string($key)){ 
     $ok=true; 
     break; 
    } 
} 

return $ok; 
0
$array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null); 

जवाब

$filterArray = array_filter($array); 

if(count($filterArray) == 0){ 
    return false; 
}else{ 
    return true; 
} 
संबंधित मुद्दे