Php - 使用join()时可以忽略/跳过空字符串

时间:2018-01-15 08:01:10

标签: php arrays join

我有一个PHP脚本,它将根据几个子字符串生成一个连接字符串。

作为一个例子,我在下面提供了一些示例代码,它采用了第一个,中间名和最后一个名称的数组,并在join函数中添加了一个换行符。

第二个数组包含一个空字符串(中间名),我想在连接期间忽略它。

我想找到一个解决方案,我可以忽略join()函数中的空字符串。

可以用一些巧妙的“技巧”完成,还是我必须先从空字符串中过滤数组?

// The array is designed as [firstname, middlename, lastname]
$names1 = array("John", "William", "Smith");
$names2 = array("Adam", "", "Johnson");

echo join("<br>", $names1);
echo "<br>";
echo join("<br>", $names2);

// Result:
/*
John
William
Smith

Adam
             <-- Can this empty line be ignored by some "trick"? :)
Johnson

NB 即可。我在实际情况中的数组包含的条件应由“AND”关键字分隔。我想避免结果为“condition1 AND AND condition3”

2 个答案:

答案 0 :(得分:5)

简单filter out空数组项:

echo join('<br>', array_filter($names2, 'strlen'));

答案 1 :(得分:1)

扩展Mike的答案并直接从php.net

获取
// removes all NULL, FALSE and Empty Strings but leaves 0 (zero) values
$result = array_filter( $array, 'strlen' );