2016-04-12 31 views
2

Son dizi [adad] değerinin boş olduğunu görebileceğiniz gibi aşağıdaki gibi bir dizim var, bunun boş olup olmadığını anlamak için bir if ifadesi nasıl yazabilirim.Dizi anahtar değerinin boş olup olmadığını belirleme

Array 
    (
     [K] => Array 
      (
       [0] => mabel__chan 
       [1] => mabel chan 
      ) 

     [B] => Array 
      (
       [0] => kieron br 
      ) 

     [C] => Array 
      (
       [0] => a br 
       [1] => a 
      ) 

     [adad] => Array 
      (
       [0] => 
      ) 

    ) 

Bu

if (count(array_filter($array)) == 0) {} 

Sözde kod

if(array[key] == blank) { 
    echo "is blank"; 
} else { 
    echo "isn't blank"; 
} 

** PHP Script bu ben mongodb * aşağıda cevap benim veri almak nasıl yapıyor denedi echos kullandığımda doğru çalışıyor, ancak şimdi yeni dizileri zorlamaya çalışırken kırılmış artık veri almadığım yer.

$col = "A" . $user->agencyID; 
$db = $m->rules; 
$collection = $db->$col; 

$id = $_POST['ruleID']; 

$search = array(
    '_id' => new MongoId($id) 
); 

$cursor = $collection->find($search); 

$validTagsArray = array(); 
$validArray = array(); 

foreach ($cursor as $key => $value) { 
    $temp = array_walk($array, function($v, $k) { 
    if (count(array_filter($v)) === 0) { 
     foreach ($value['AutoFix'] as $keyTwo => $valTwo) { 
     $x = 0; 
     $validTagsArray['data'][] = array($keyTwo, $x); 
     } 
    } else { 
     foreach ($value['AutoFix'] as $keyTwo => $valTwo) { 
     $x = 0; 
     foreach ($valTwo as $key => $value) { 
      $x++;  
     } 
     $validTagsArray['data'][] = array($keyTwo, $x); 
     }    
    } 
    }); 
} 

echo json_encode($validTagsArray); 
+1

kullanabilirsiniz eğer (boş ($ dizi [$ key])). – RJParikh

+0

Denediniz mi == ""? – Borna

cevap

2

Bu deneyebilirsiniz -

$array = array 
(
    'K' => array('0' => 'mabel__chan','1' => 'mabel chan'), 
    'B' => array('0' => 'kieron br'), 
    'C' => array('0' => 'a br', '1' => 'a'), 
    'adad' => array('0' => '') 
); 

$temp = array_walk($array, function($v, $k) { 
    if(count(array_filter($v)) === 0) { // check the count of non-empty elements in the sub array 
     echo $k . ' is empty'; 
    } 
}); 

Çıktı

adad is empty 
+0

Teşekkürler Sougata, mükemmel çalıştı. – Kieron606

+0

Yardım etmesine sevindim. –

+0

Tamam, echos'u kullanırken çalıştım ama şimdi php komutumu kırdı, nerede olduğunu anlayamıyorum. (Bütün yazıyı yazıya dahil ettim) – Kieron606

0

Sen olarak yazabilirsiniz:

if([adad][0]== " ") 
{ 

} 

Ayrıca bu deneyebilirsiniz:

foreach($array as $key=>$value){ 
    if(empty($value)) 
    echo "empty"; 
    } 
+0

Yardım merkezinde [düzenleme yardımı] (http://stackoverflow.com/editing-help) aracılığıyla okumak için bir dakikanızı ayırın. Yığın Taşması Üzerindeki Biçimlendirme, diğer sitelerden farklıdır. – Rizier123

İlgili konular