Bir dizi bir döngü kullanmadan boş olup olmadığını kontrol edin?

7 Cevap php

Bir dizi boş veya olmadığını kontrol etmek PHP mevcut herhangi bir işlevi var mı ben bu döngü kullanmadan nasıl yapabilirim?

Örneğin,: $b = array('key1' => '', 'key2' => '', 'key3' => '', 'key4' => '');

Nasıl array $ b bir döngü kullanmadan boş değerler içeren kontrol edebilirim?

7 Cevap

Basit:

function allEmpty($array)
{
    return empty(array_filter($array)); // (PHP < 5.3) or
    $array = array_filter($array); return empty($array); // (PHP >= 5.3) or just
    return array_filter($array) === array();
}

function someEmpty($array)
{
    return ($array !== array_filter($array));
}

Eğer bir döngü ya da bazı dizi işlevini ister, hala çok dizi aracılığıyla basit ve sadece döngü devam dizi döngü konum:

function isEmpty($arr) {
  foreach ($arr as $k => $v) {
    if ($v) {
      return false;
    }
  }
  return true;
}

Eğer boş tanımlamak istediğinize bağlı olarak, sadece boş dizeler için kontrol etmek isteyebilirsiniz:

function isEmpty($arr) {
  foreach ($arr as $k => $v) {
    if ($v === '') {
      return false;
    }
  }
  return true;
}

Basitçe hayır, koydu.

Değişmez bir foreach yapmak istemiyorsanız / / süre için, kullanabilirsiniz array_walk.

Bu kontrol etmek istediğiniz belirli bir dizi ise (örn: sadece key => değerleri vardır ve boş =>'' Her zaman anahtar) ...

$b = array('key1' => '', 'key2' => '', 'key3' => '', 'key4' => '');
$temp = array_flip($b);
if(count($temp) === 1 && empty($temp[0])){
    echo 'empty';
}

Aksi takdirde üzgünüm ... bir döngü kullanmak zorunda olacak.

boş dizeler için kontrol etmek istiyorsanız '' kullanabilirsiniz in_array

if(!in_array('', $array)) echo 'array doesn’t contain empty strings';
if(in_array('', $array)) echo 'array does contain at least one empty string';

Ayrıca array_filter boş bir arama yöntemi deneyin, ve boş bir diziye karşılaştırmak isteyebilirsiniz (veya kullanmak empty()):

if(empty(array_filter($array))) echo 'array only contains values evaluating to false';

Ben genellikle şu koşulu ile kontrol:

if(is_array($array) and count($array)) {
 //  ... code here ...
}

Hepsi bu.

Basit bir

if(!array_filter($array)){
  //Is empty
}
else
{
  //Is not empty
}

işi.