2012-02-20 15 views
13

यहाँमैं कैसे जांचूं कि सरणी मान खाली है या नहीं?

Array 
(
    [1] => 1 
    [2] => 2 
    [3] => 
) 

ouput मेरी सरणी मुझे कैसे पता [3] => खाली है हैं?

foreach ($array as $key => $value) { 
    if (empty($value)) 
     echo "$key empty <br/>"; 
    else 
     echo "$key not empty <br/>"; 
} 

मेरे बाहर दिखा सब खाली नहीं है डाल दिया। जांच करने का सही तरीका क्या खाली है?

+1

शायद क्योंकि तीसरा तत्व एक सफेद स्थान '' 'है, इसलिए यह खाली स्ट्रिंग नहीं है? यदि ऐसा है, तो इसे 'if (trim ($ value)! =' '' में बदलें ... ' –

+3

इन समस्याओं से बचने के लिए, मानों को प्रिंट करते समय var_dump() का उपयोग करें। यह लंबाई दिखाएगा और उन रिक्त पात्रों को छुपाएगा। –

उत्तर

12

यह काम करता है के रूप में उम्मीद, तीसरे एक बस मामले कि तीसरे मूल्य सिर्फ एक अंतरिक्ष होगा में खाली

http://codepad.org/yBIVBHj0

हो सकता है कि अपने मूल्य ट्रिम करने के लिए कोशिश करता है।

foreach ($array as $key => $value) { 
    $value = trim($value); 
    if (empty($value)) 
     echo "$key empty <br/>"; 
    else 
     echo "$key not empty <br/>"; 
} 
+2

गायन से बेहतर कोडिंग .. इसे पसंद किया .. – floCoder

+0

@ नेफिल बस इसे स्पष्ट करने के लिए, मेरे पास सेलेना गोमेज़ के साथ एक प्रोफ़ाइल तस्वीर है :) –

4

आप array_diff() और array_diff_key() उपयोग कर सकते हैं:

$array = array('one', 'two', ''); 
$emptyKeys = array_diff_key(array_diff($array,array()),$array); 

array_diff() अर्क सभी आइटम जो नहीं कर रहे हैं एक ही (इसलिए कारतूस बाहर छोड़कर), array_diff_key मूल सरणी के लिए मतभेदों को वापस देता है।

+0

यह काम नहीं करता है ..php> print_r ($ सरणी); सरणी ( [0] => एक [1] => दो [2] => ) php> $ emptyKeys = array_diff_key (array_diff ($ सरणी, सरणी()), $ सरणी); php> print_r ($ blankKeys); ऐरे ( ) – UberNeo

18

एक अन्य समाधान:

$array = array('one', 'two', ''); 

if(count(array_filter($array)) == count($array)) { 
    echo 'OK'; 
} else { 
    echo 'ERROR'; 
} 

http://codepad.org/zF9KkqKl

0

इस प्रयास करें:

<?php 
    $data=array(
     'title' => 'Test Name Four', 
     'first_name' => '', 
     'last_name' => 'M', 
     'field_company' => 'ABC', 
     'email' => '', 
     'client_phone_number' => '', 
     'address_line_1' => '', 
     'address_line_2' => 'Address 3', 
     'address_line_3' => '', 
     'address_line_4' => '', 
     'post_code' => '', 
     ); 
    echo '<pre>'; 
    print_r($data); 
    foreach ($data as $key => $case) { 
     echo "$key => ".is_multiArrayEmpty($case)."<br>"; 
    } 
    function is_multiArrayEmpty($multiarray) { 
     if(is_array($multiarray) and !empty($multiarray)){ 
      $tmp = array_shift($multiarray); 
       if(!is_multiArrayEmpty($multiarray) or !is_multiArrayEmpty($tmp)){ 
        return false; 
       } 
       return true; 
     } 
     if(empty($multiarray)){ 
      return true; 
     } 
     return false; 
    } 
?> 
0

यहाँ खाली कुंजी मान के लिए एक सरणी की जाँच करें और कुंजी वापस जाने के लिए एक सरल उपाय है।

$a = array('string', '', 5); 

     echo array_search(null, $a); 
     // Echos 1 

यह जांचने के लिए कि सरणी में एक खाली कुंजी मान है या नहीं। इसे इस्तेमाल करे।

 $b = array('string','string','string','string','','string'); 

     if (in_array(null, $b)) { 
      echo 'We found a empty key value in your array!'; 
     } 
0

im अपने प्रोजेक्ट में इस तरह की जांच के लिए

im पोस्टिंग फ़ॉर्म डेटा इस array('username' => 'john','surname' => 'sins');

public function checkArrayKeyExist($arr) { 
    foreach ($arr as $key => $value) { 
     if (!strlen($arr[$key])) { 
      return false; 
     } 
    } 
    return true; 
} 
+0

कुछ स्पष्टीकरण जोड़ें – HaveNoDisplayName

+0

आईएम ने कुछ स्पष्टीकरण जोड़ा – coyote34

2

आप निम्न का उपयोग करके एक खाली सरणी के लिए जाँच कर सकते हैं की तरह इस सरणी का उपयोग कर:

if (!empty(array_filter($array))) { 
    echo 'OK'; 
} else { 
    echo 'EMPTY ARRAY'; 
} 
+0

यह मेरे लिए काम करता है! –

संबंधित मुद्दे