如果数组在php中有值,如何回显?

时间:2017-11-10 18:04:42

标签: php

我运行一个foreach循环,其中一些循环不包含以下变量,它们都是空的。

但是,“hi world”总是得到回应。

只有当$row['utm_source'],$row['utm_medium'],$row['utm_campaign']中至少有一个有值时,我才能显示“hello world”?

$arr = array($row['utm_source'],$row['utm_medium'],$row['utm_campaign']);

if (!empty($arr)) {
    echo "hi world";
}

3 个答案:

答案 0 :(得分:2)

您可以使用count()array_filter()执行此操作: -

$arr = array($row['utm_source'],$row['utm_medium'],$row['utm_campaign']);

if (count(array_filter($arr))>0) {
  echo "hi world";
}

答案 1 :(得分:0)

您可以使用两种方法:

<强> 1。内爆+修剪

implode如果它们与提供的分隔符一起是字符串,则连接数组项。

if( trim(implode("", $arr)) !== ""){
    echo "hi world";
}  

<强> 2。 array_filter

array_filter返回将返回true的项返回给提供的回调函数。

$arr = array_filter($arr, function($d) { return trim($d) !== ""; });

if(count($arr)){
   echo "hi world";
}

答案 2 :(得分:0)

这是一种粗略的方法,你可以做到这一点

<?php
$row = array();
$row['utm_source'] = null;
$row['utm_medium'] = null;
$row['utm_campaign'] = 1;
foreach ($row as $key => $value) {
        if(isset($key)){
        echo 'Hello';
        break;
    }
}

这是eval link

您也可以通过

查看
if (!empty($row['utm_source'])) {...}