用逗号和字符串PHP分隔数组

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了用逗号和字符串PHP分隔数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用逗号和单词分隔数组.

这是我的代码

$array = array( 'user1','user2','user3','user4','user5' );
$last = array_pop( $array );
$string = count( $array ) ? implode( ",",$array ) . " and " . $last : $last;

PRintf( 'Authors: %s',$string );

我的代码打印出来:

作者:user1,user2,user3,user4和user5

我成功地创建了一个代码,用逗号来破坏数组并搜索最后一个密钥并用一个单词’和’分隔它.

但这就是我想要的,但经过两天多的工作后,我失败了:

作者:user1,user2和user3以及其他2个人.

解决方法

虽然我一直在寻找处理这样的任务的聪明的计算过程,但我会提供更多的行人选择. (为了记录,我讨厌写一些if-elseif-else条件,几乎和我讨厌swITch-case块的冗长一样多.)对于这个狭窄的任务,我选择放弃我喜欢的数组函数并有条件地打印这些值与他们的自定义分隔符.

虽然此解决方案可能在页面上的可扩展性最低,但它可能是最容易理解的(将代码与其生成输出相关联).如果这是关于“喜欢”或其他什么,我真的没有看到对可扩展性的大量需求 – 但我可能是错的.

密切关注2计数案例.我的解决方案用和代替,而不是,这似乎更适合英语/人类.

代码:(Demo)

$arrays[] = array();
$arrays[] = array('user1');
$arrays[] = array('user1','user2');
$arrays[] = array('user1','user3');
$arrays[] = array('user1','user4');
$arrays[] = array('user1','user5');

foreach ($arrays as $i => $array) {
    echo "test $i: ";
    if (!$count = sizeof($array)) {
        echo "nobody";
    } elseif ($count == 1) {
        echo $array[0];
    } elseif ($count == 2) {
        echo "{$array[0]} and {$array[1]}";
    } elseif ($count == 3) {
        echo "{$array[0]},{$array[1]},and {$array[2]}";
    } else {
        echo "{$array[0]},{$array[2]},and ",$count - 3," other",($count != 4 ? 's' : '');
    }
    echo "\n---\n";
}

输出

TEST 0: nobody
---
TEST 1: user1
---
TEST 2: user1 and user2
---
TEST 3: user1,and user3
---
TEST 4: user1,and 1 other
---
TEST 5: user1,and 2 others
---

附:相同处理的更紧凑版本:

代码:(Demo)

if (!$count = sizeof($array)) {
    echo "nobody";
} elseif ($count < 3) {
    echo implode(' and ',$array);
} else{
    echo "{$array[0]},{$array[1]}";
    if ($count == 3) {
        echo ",and {$array[2]}";
    } else {
        echo ",($count != 4 ? 's' : '');
    }
}

最后,这是一种“医生”阵列和前置以及最终元素的方法.我想无论如何你转动这个任务,会有一定程度的卷积.

代码:(Demo)

$count = sizeof($array);
if ($count < 3) {
    echo implode(' and ',$array);
} else {
    if ($count == 3) {
        $array[2] = "and {$array[2]}";
    } else {
        $more = $count - 3;
        array_splice($array,3,$more,["and $more other" . ($more > 1 ? 's' : '')]);
    }
    echo implode(',',$array);
}

脚本宝典总结

以上是脚本宝典为你收集整理的用逗号和字符串PHP分隔数组全部内容,希望文章能够帮你解决用逗号和字符串PHP分隔数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

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