implode()字符串,但最后还附加了胶水

时间:2015-09-01 16:53:07

标签: php string implode

尝试使用implode()函数在每个元素的末尾添加字符串。

$array = array('9898549130', '9898549131', '9898549132');
$attUsers = implode("@txt.att.net,", $array);

print($attUsers);

打印出来:

9898549130@txt.att.net,9898549131@txt.att.net,9898549132

如何让implode()附加最后一个元素的粘合剂?

预期产出:

9898549130@txt.att.net,9898549131@txt.att.net,9898549132@txt.att.net
                                                      //^^^^^^^^^^^^ See here

6 个答案:

答案 0 :(得分:2)

这似乎有效,不确定它是最好的方法:

$array = array('9898549130', '9898549131', '9898549132');
$attUsers = implode("@txt.att.net,", $array) . "@txt.att.net";
print($attUsers);

答案 1 :(得分:1)

这是我朋友的答案,似乎提供了使用foreach的最简单的解决方案。

$array = array ('1112223333', '4445556666', '7778889999');

// Loop over array and add "@att.com" to the end of the phone numbers
foreach ($array as $index => &$phone_number) {
    $array[$index] = $phone_number . '@att.com';
}

// join array with a comma
$attusers = implode(',',$array);  

print($attusers); 

答案 2 :(得分:1)

使用array_map和lambda函数有一种更简单,更好,更有效的方法:

$numbers = ['9898549130', '9898549131', '9898549132'];

$attUsers = implode(
    ',',
    array_map(
        function($number) {
            return($number . '@txt.att.net');
        },
        $numbers
    )
);

print_r($attUsers);

答案 3 :(得分:0)

有一个简单的解决方案可以实现这一目标:

$i = 1;
$c = count($array);

foreach ($array as $key => $val) {
    if ($i++ == $c) {
        $array[$key] .= '@txt.att.net';
    }
}

答案 4 :(得分:0)

$result = '';
foreach($array as $a) {
    $result = $result . $a . '@txt.att.net,';
}
$result = trim($result,',');

答案 5 :(得分:0)

在插入之前在数组中附加一个空字符串。
但后来我们又遇到了另一个问题,最后是一个尾随的逗号 所以,remove it

输入:

$array = array('9898549130', '9898549131', '9898549132', '');
$attUsers = implode("@txt.att.net,", $array);
$attUsers = rtrim($attUsers, ",")

输出:

9898549130@txt.att.net,9898549131@txt.att.net,9898549132@txt.att.net