php заменяет последний символ конкретного символа - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть массив, и я хочу создать из них сообщение. Если я использую join(', ', $response), я получаю file1.jpg, file2.jpg, file3.jpg. Можно ли заменить последнюю запятую, чтобы сообщение было file1.jpg, file2.jpg AND file3.jpg?

Ответы [ 3 ]

0 голосов
/ 28 апреля 2019

Вы можете использовать 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);
}
0 голосов
/ 28 апреля 2019

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

0 голосов
/ 28 апреля 2019

Это должно работать;

<?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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...