程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP从数组值形成字符串“ A,B,C和D”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决php从数组值形成字符串“ A,B,C和D”?

开发过程中遇到php从数组值形成字符串“ A,B,C和D”的问题如何解决?下面主要结合日常开发的经验,给出你关于php从数组值形成字符串“ A,B,C和D”的解决方法建议,希望对你解决php从数组值形成字符串“ A,B,C和D”有所启发或帮助; || 给定以下数组:
Array
(
    [143] => Car #1
    [144] => Car #2
    [145] => Car #3
)
我目前正在使用
implode(\',\',array_values($car_names))
生成一个像   汽车#1,汽车#2,汽车#3 我想得到一些类似的东西   1号,2号和3号汽车 这个想法是在数组的最后两个元素之间插入\“和\”。 如果数组恰好包含两个键/值对(例如,用户有2辆汽车),则不会有逗号。   1号车和2号车 并且如果数组包含一个键/值(例如,用户有1辆车)   1号车 任何建议如何做到这一点?我尝试使用
array_splice
,但是我不确定这是要走的路(即,将新元素插入数组)。 感谢您的帮助!     

解决方法

        我想您可能想要这样,使用
array_pop
将最后一个元素移出数组末尾。然后,您可以内嵌数组的其余部分,并以自定义方式添加最后一个元素:
$last_value = array_pop($car_names);
$output = implode(\',\',array_values($car_names));
$output .= ($output ? \' and \' : \'\') . $last_value;
编辑:添加条件来检查数组是否只有一个元素。     ,        
$last = array_pop($car_names);
echo implode(\',$car_names) . \' AND \' . $last;
    ,        preg_replace只需将其交换为to6ѭ即可查找最后一条命令。
$yourString = preg_replace( \"/,([\\w#]*)$/\",\"and \\1\",$yourString );
    ,        该解决方案更长一些,但是已经针对所有阵列大小进行了测试,并且是一个完整的解决方案。另外,它不会像上面的答案那样修改数组,而是被分成一个函数。
function arrayToString($arr) {
    $count = count($arr);
    if ($count <= 2) {
        return implode(\' and \',$arr);
    }
    $result = \'\';
    $i = 0;
    foreach ($arr as $item) {
        if ($i) $result .= ($i == $count - 1) ? \' and \' : \',\';
        $result .= $item;
        $i++;
    }
    return $result;
}
具有丑陋格式的压缩版本,并且忽略了初始化变量的良好做法:
function arrayToString($arr) {
    if (count($arr) <= 2) return implode(\' and \',$arr);
    foreach ($arr as $item) {
        if ($i) $result .= ($i == count($arr) - 1) ? \' and \' : \',\';
        $result .= $item; $i++;
    }
    return $result;
}
    ,        我不确定是否有内置函数,但是类似的东西应该可以工作。
$last = $car_names[count($car_names)-1];
$implodedString = implode(\',array_values($car_names))
$implodedString = str_replace(\",$last\",\"and $last\",$implodedString);
    ,        这是上面我的评论中命名的函数的示例:
strrpos()
-查找子串在字符串中最后一次出现的位置
substr()
-返回字符串的一部分 和代码:
$text = implode(\',array_values($car_names));
$last = strrpos($text,\');
if ($last) $text = substr($text,$last-1) . \' AND \' . substr($text,$last+1);
echo $text;
    ,        您可以通过多种方法来执行此操作。这是另一个。
<?php
$cars = array(\'Car #1\',\'Car #2\',\'Car #3\',\'Car #4\');
$car = array(\'Car #1\');
$twocars = array(\'Car #1\',\'Car #2\');

function arrayToText($arr) {
    switch (count($arr)) {
    case 1:
        return $arr[0];
        break;
    case 2:
        return implode($arr,\' and \');
        break;
    default:
        $last = array_pop($arr);
        return implode($arr,\') . \' and \' . $last;
        break;
    }
}

echo \'<p>\' . arrayToText($cars) . \"</p>\\n\";
echo \'<p>\' . arrayToText($twocars) . \"</p>\\n\";
echo \'<p>\' . arrayToText($car) . \"</p>\\n\";
输出量
<p>Car #1,Car #2,Car #3 and Array</p>
<p>Car #1 and Car #2</p>
<p>Car #1</p>
    

大佬总结

以上是大佬教程为你收集整理的PHP从数组值形成字符串“ A,B,C和D”全部内容,希望文章能够帮你解决PHP从数组值形成字符串“ A,B,C和D”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。