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

Ken*_*rio 5 php database arrays foreach

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

$array = $funcs->searchCompany($bizName);
Run Code Online (Sandbox Code Playgroud)

然后我使用foreach检查varchar的值是否为null,int的值是0然后我将其值替换为"未提供",以便每次调用它时都会说"未提供"

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'];
Run Code Online (Sandbox Code Playgroud)

但它似乎是错误的,因为它会破坏输出.

Vir*_*ral 1

您可以使用&此处传递要在 foreach 内部更改的数组值,而无需实际担心哪个是当前数组键,这有时也称为通过引用传递变量的值。

使用 foreach

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

使用 array_map()

$array = array_map(function($value){
            if(empty($value))
                return 'Not Provided';
            return $value;
        }, $array);
Run Code Online (Sandbox Code Playgroud)

但我建议使用 foreach。