I使用PHP的语句和数组

I使用PHP的语句和数组,php,arrays,if-statement,Php,Arrays,If Statement,我有一个像这样的零数组: $a = array(0 , 0 , 0 , 0 ); if ($a == 0) { // all elements of $k be equal to zero //do something; } else { //do not do something!!!; } 我想要一个关于如下内容的if语句: $a = array(0 , 0 , 0 , 0 ); if ($a == 0) { // all elements of $

我有一个像这样的零数组:

$a = array(0 , 0 , 0 , 0 );
if ($a == 0) { 
    // all elements of $k be equal to zero
    //do something;
}
else {
    //do not do something!!!;
}
我想要一个关于如下内容的if语句:

$a = array(0 , 0 , 0 , 0 );
if ($a == 0) { 
    // all elements of $k be equal to zero
    //do something;
}
else {
    //do not do something!!!;
}

如何使用
foreach

使用简单的foreach循环,如:

$a = array(0 , 0 , 0 , 0, 1);

foreach($a as $el){
    if ($el == 0){
        //do something;
        echo 'ok'.PHP_EOL;
    }else{
        echo 'no'.PHP_EOL;
    }
}
产出:

ok
ok
ok
ok
no
ok
如果您需要一次全部检查:

$a = [0,0,0,0,0];
$u = array_unique($a);

if(count($u) == 1 && $u[0] == 0){
    //do something;
    echo 'ok'.PHP_EOL;
} else {  
    echo 'no'.PHP_EOL;
}
产出:

ok
ok
ok
ok
no
ok

使用简单的foreach循环,如:

$a = array(0 , 0 , 0 , 0, 1);

foreach($a as $el){
    if ($el == 0){
        //do something;
        echo 'ok'.PHP_EOL;
    }else{
        echo 'no'.PHP_EOL;
    }
}
产出:

ok
ok
ok
ok
no
ok
如果您需要一次全部检查:

$a = [0,0,0,0,0];
$u = array_unique($a);

if(count($u) == 1 && $u[0] == 0){
    //do something;
    echo 'ok'.PHP_EOL;
} else {  
    echo 'no'.PHP_EOL;
}
产出:

ok
ok
ok
ok
no
ok
使用array_unique($a)删除重复的0值,它将减少循环并提供快速输出。之后你可以使用

 $b = array_unique($a);
foreach($b as $el){
   if ($el == 0){
    //do something;
    echo 'ok'.PHP_EOL;
  }else{
    echo 'no'.PHP_EOL;
  }
}
使用array_unique($a)删除重复的0值,它将减少循环并提供快速输出。之后你可以使用

 $b = array_unique($a);
foreach($b as $el){
   if ($el == 0){
    //do something;
    echo 'ok'.PHP_EOL;
  }else{
    echo 'no'.PHP_EOL;
  }
}

使用
array\u filter
删除所有
0
元素

$a = array(0 , 0 , 0 , 0);
if (count(array_filter($a)) == 0) {
    // do something if all elements are 0
    echo "Contains all zero elements";
}
else {
    // do something
    echo "Contains non zero elements";
}

以下是使用
array\u过滤器
删除所有
0
元素

$a = array(0 , 0 , 0 , 0);
if (count(array_filter($a)) == 0) {
    // do something if all elements are 0
    echo "Contains all zero elements";
}
else {
    // do something
    echo "Contains non zero elements";
}

这是

试试这个:-

$a = array(0, 0, 30 , 40 );
if (in_array(0,$a)){
   echo "0 is exists";
}else{
   echo "0 is not exists";
}

试试这个:-

$a = array(0, 0, 30 , 40 );
if (in_array(0,$a)){
   echo "0 is exists";
}else{
   echo "0 is not exists";
}
试试这个

function test($a)
{
  $arraySize = sizeOf($a);
  $countOfNumWithZero;
  $message = "";

  foreach($a as $val)
  {
      ($val === 0) ? $countOfNumWithZero++ : null;        

      $message = ($arraySize === $countOfNumWithZero) ? "This is all zeroes" : "This contain a non zero";                
  }
  return $message;
}

$val1 = array(0, 0 , 0, 0, 0);
$val2 = array(0, 0 , 0, 0, 1);
$val3 = array(0, 0 , -1, 0, 1);


echo test($val1);
echo test($val2);
echo test($val3);
输出是这样的

This is all zeroes
This contain a non zero
This contain a non zero
试试这个

function test($a)
{
  $arraySize = sizeOf($a);
  $countOfNumWithZero;
  $message = "";

  foreach($a as $val)
  {
      ($val === 0) ? $countOfNumWithZero++ : null;        

      $message = ($arraySize === $countOfNumWithZero) ? "This is all zeroes" : "This contain a non zero";                
  }
  return $message;
}

$val1 = array(0, 0 , 0, 0, 0);
$val2 = array(0, 0 , 0, 0, 1);
$val3 = array(0, 0 , -1, 0, 1);


echo test($val1);
echo test($val2);
echo test($val3);
输出是这样的

This is all zeroes
This contain a non zero
This contain a non zero
以你为例:

$a = array(0, 0, 0, 0);
if(array_unique($a) === [0]) {
    echo 'all zeros.';
}
输出:

bool(true)
bool(false)
all zeros.
如果数组仅由整数组成,则翻转数组可能会更有效。0的数组将减少为一项,索引为0

$flipped = array_flip(array(0, 0, 0, 0));
if(isset($flipped[0]) && count($flipped) === 1) {
    // all zeros
}
以你为例:

$a = array(0, 0, 0, 0);
if(array_unique($a) === [0]) {
    echo 'all zeros.';
}
输出:

bool(true)
bool(false)
all zeros.
如果数组仅由整数组成,则翻转数组可能会更有效。0的数组将减少为一项,索引为0

$flipped = array_flip(array(0, 0, 0, 0));
if(isset($flipped[0]) && count($flipped) === 1) {
    // all zeros
}


$a==0
是什么意思?所有元素都等于0?你的意思是想找到除0之外还有其他值吗?这里的问题是什么?a==0是什么意思?所有元素都等于0?你的意思是想找到除0之外还有其他值吗?这里的问题是什么?为什么在输出中没有?@Prabhjotsinghkaint,这是我的特殊输入数组)我想知道,如果数组的所有成员都是0,那么做一些与你说的不完全一样的事情,但是thanks@AksenP美好的缓存
数组\u unique($a)
结果以使其更快。为什么输出中没有?@prabhjotsinghkaint,这是我的特殊输入数组)我想知道,如果a数组的所有成员都是0,那么做一些与u所说的不完全一样的事情,但是thanks@AksenP美好的缓存
数组\u unique($a)
结果,使其更快。很好。我认为您可以避免foreach,使代码更加简洁。美好的我认为您可以避免foreach,使代码更加简洁。我认为OP想要检查所有数组元素是否为零。我认为OP想要检查所有数组元素是否为零。这是一个正确的解决方案。只需注意,不将回调传递给array_filter甚至会过滤掉所有计算结果为false的值,如
NULL
false
array()
等。这是一个正确的解决方案。只需注意一点,不向array_filter传递回调甚至会过滤掉所有计算结果为false的值,如
NULL
false
array()
等。如果输入是
$a=array(0,0,1,0,-1),该怎么办谢谢你。您的解决方案非常简洁:D.假设输入是
$a=array(0,0,1,0,-1)谢谢你。您的解决方案非常简洁:D。