显示"未提供"当变量在数据库中为null或为空时

时间:2015-09-16 09:07:15

标签: php arrays database foreach

我有一个变量数组,可以获取我的函数检索到的所有内容。

$array = $funcs->searchCompany($bizName);

然后我使用foreach检查varchar的值是否为null,int的值是0,然后我将其值替换为"未提供"这样每次调用时都会说“未提供”#34;

foreach ($array as $var) {
            if($var == " " || $var == 0) {
                $var = "Not Provided";
            }
         }

  $name = $var['name'];
            $url = $var['url'];
            $tagline = $var['tagline'];
            $descrip = $var['descrip'];
            $bemail = $var['bemail'];
            $address = $var['address'];
            $city = $var['city'];

但似乎错了,因为它会破坏输出。

3 个答案:

答案 0 :(得分:1)

我会尝试这样的事情。我不能写评论,所以我写它作为答案。

我从您的代码中理解的是您的数组具有键值关系。这很可能是因为它不适用于您的单维数组迭代。 试试这个。

    foreach ($array as $var => $value) {
         if($value == " " || $value == 0 || $value == null) {
             $array[$var] = "Not Provided";
         }
      }
   echo "<pre>";
   print_r($array);
   echo "</pre>";

试一试。

答案 1 :(得分:1)

更新您的功能,如

foreach ($array as &$var) {
    if($var == " " || $var == 0) {
        $var = "Not Provided";
    }
}

$name = $array['name'];
$url = $array['url'];
$tagline = $array['tagline'];
$descrip = $array['descrip'];
$bemail = $array['bemail'];
$address = $array['address'];
$city = $array['city'];

答案 2 :(得分:1)

你可以在这里使用&传递数组的值来改变foreach内部,而不必担心当前数组键是哪一个,有时也称为通过引用传递变量的值。

使用 foreach

foreach ($array as &$value) // note the &
{
    if(empty($value)) $value = 'Not Provided';
    // other values remain untouched
}

使用 array_map()

$array = array_map(function($value){
            if(empty($value))
                return 'Not Provided';
            return $value;
        }, $array);

但我会建议和foreach一起去。