【发布时间】:2019-04-27 21:30:45
【问题描述】:
我有一个数组,我想从中生成一条消息。
如果我使用join(', ', $response),我会得到file1.jpg, file2.jpg, file3.jpg。是否可以替换最后一个逗号,使消息为file1.jpg, file2.jpg AND file3.jpg?
【问题讨论】:
我有一个数组,我想从中生成一条消息。
如果我使用join(', ', $response),我会得到file1.jpg, file2.jpg, file3.jpg。是否可以替换最后一个逗号,使消息为file1.jpg, file2.jpg AND file3.jpg?
【问题讨论】:
这应该有效;
<?php
$response=['file1.jpg','file2.jpg','file3.jpg'];
$response=array_reverse($response);
$arr=$response[1].' AND ' .$response[0];
for ($i=2; $i < count($response); $i++) {
$new[]=$response[$i];
}
array_push($new, $arr);
echo join(", ",$new);
【讨论】:
您可以使用array_slice 来获取数组中除最后一个以外的所有元素,并为其设置特殊情况:
function formatList($response)
{
if(count($response) == 0)
return '' ;
if(count($response) == 1)
return $response[0] ;
else
return join(', ', array_slice($response, 0, count($response)-1)) . ' AND ' . end($response);
}
【讨论】:
substr_replace 用位置和长度替换字符串的一部分,strrpos 查找最后一个逗号的位置。
$response = ['file1.jpg', 'file2.jpg', 'file3.jpg'];
$out = join(', ', $response);
echo substr_replace($out, " AND", strrpos(($out), ','), 1);
https://www.php.net/manual/en/function.substr-replace.php https://www.php.net/manual/en/function.strrpos.php
【讨论】: