PHP从数组值中形成类似"A,B,C和D"的字符串

pep*_*epe 4 php arrays implode array-splice

给出以下数组:

Array
(
    [143] => Car #1
    [144] => Car #2
    [145] => Car #3
)
Run Code Online (Sandbox Code Playgroud)

我目前正在使用它

implode(', ', array_values($car_names))
Run Code Online (Sandbox Code Playgroud)

生成一个类似的字符串

汽车#1,汽车#2,汽车#3

我想实际上得到类似的东西

汽车#1,汽车#2和汽车#3

想法是在数组的最后两个元素之间插入"和".

如果数组恰好包含两个键/值对(例如,用户有2辆车),则不会有逗号.

汽车#1和汽车#2

如果数组包含一个键/值(例如,用户有1辆车)

汽车#1

有任何建议如何完成这项工作?我尝试过使用,array_splice但我不确定是否可行(即将新元素插入数组).

谢谢你的帮助!

Dav*_*han 6

$last = array_pop($car_names);
echo implode(', ', $car_names) . ' AND ' . $last;
Run Code Online (Sandbox Code Playgroud)