如何使用null效果连接php中的各种字符串

时间:2015-05-23 14:52:03

标签: php string concatenation string-concatenation

我有四个php变量,如:$abc, $bcd, $dsf, $gkg。现在我想用逗号分隔它们来连接它们。

输出:

abc,bcd,dsf,gkg

现在,如果任何变量没有返回任何值..则输出如下:

abc,,dsf,gkg

那么如果任何变量的值为null,该如何避免这种情况?

$street = tribe_get_address( $event->ID );
$city = tribe_get_city( $event->ID );
$state = tribe_get_stateprovince($event->ID);
$country = tribe_get_country( $event->ID );
$zipcode = tribe_get_zip( $event->ID );
$fulladdress= concatenation of these variables..

4 个答案:

答案 0 :(得分:18)

此解决方案应该适合您:

只需将所有变量放入数组并使用array_filter()过滤掉所有空值,然后用逗号({3}}将它们过滤掉,例如

$fulladdress = implode(",", array_filter([$street, $city, $state, $country, $zipcode])) ;

答案 1 :(得分:1)

此代码未经过优化,但可以正常运行:

<?php
    $abc = "abc";
    $bcd = null;
    $cde = "cde";



/**
 * concatenate some values
 * @param $values an array witch contains all values to concatenate
 */
function concat( $values = array() )
{
    //Look over all values
    for ($i = 0; $i < count($values); $i++) {
        //If current value is not null or empty, display it
        if ( !empty($values[$i]) )
            echo $values[$i];
        //If current value is not null AND if it is not the last value
        if ( !empty($values[$i]) && $i < count($values) -1 )
            echo ', ';
    }
}
concat(array($abc, $bcd, $cde));

答案 2 :(得分:1)

array_filter可用于从提供的数组中过滤掉FALSE,空或Null字符串。

点击此处:http://php.net/manual/en/function.array-filter.php

<?php

    $entry = array(
         0 => 'foo',
         1 => false,
         2 => -1,
         3 => null,
         4 => ''
    );

    print_r(array_filter($entry));
?>

上面的代码将输出:

Array
(
    [0] => foo
    [2] => -1
)

现在内爆得到的数组'','所以你得到一个字符串将所有非空元素分开,

以下是我在代码中使用的内容:

$Matter_Client_Address_City_ST_Zip =      
    implode(",",array_filter([$Matter_Client_City, 
    $Matter_Client_State,$Matter_Client_Zip]));        

上面的代码只会输出非空字段,所以如果city为空,则会输出CA,92620

答案 3 :(得分:0)

可以帮助您

function concat_ws(){
    $ar=func_get_args();
    return implode(array_shift($ar), array_filter($ar)) ;
}
echo concat_ws(" - ", "hello", "", null, "world");

返回:你好-世界