如何从另一个逗号分隔列表中获取以y开头的x项的逗号分隔列表

时间:2019-02-28 05:51:55

标签: php arrays list explode implode

说我有一个列表Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco。 我想要一个从第3个项目开始的列表,总共有5个项目。这意味着我想拥有England,China,Uruguay,Spain,Taiwan

如何在PHP上做到这一点?

5 个答案:

答案 0 :(得分:3)

您可以简单地将字符串转换为数组,例如

$str = "Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco";
$array = explode(",",$str);

然后使用array_slice跳过前2个项目

print_r(implode(",",array_slice($array,2)));

答案 1 :(得分:1)

您可以设置爆炸函数的限制(第三个参数)并获取结果数组的最后一项

$str = 'Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco';
echo $result = explode(',', $str, 3)[2]; //England,China,Uruguay,Spain,Taiwan,Monaco

doc

  

如果将limit设置为正,则返回的数组将包含一个   限制元素的最大值,最后一个元素包含其余的   字符串。

答案 2 :(得分:0)

<?php
$list = "Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco";
$listArray = explode(",",$list);
print_r($listArray);
$startlist = 3; // Here you can set where you have start
if($startlist<count($listArray)){
    print_r(implode(",",array_slice($listArray,$startlist)));
}else{
    echo "Start limit exceed length of string";
}

?>

输出 对于积极的情况,请设置$startlist = 3;

Array
(
    [0] => Poland
    [1] => USA
    [2] => England
    [3] => China
    [4] => Uruguay
    [5] => Spain
    [6] => Taiwan
    [7] => Monaco
)
China,Uruguay,Spain,Taiwan,Monaco

对于否定方案集$startlist = 8;

Array
(
    [0] => Poland
    [1] => USA
    [2] => England
    [3] => China
    [4] => Uruguay
    [5] => Spain
    [6] => Taiwan
    [7] => Monaco
)
Start limit exceed length of string

答案 3 :(得分:0)

作为函数的另一种方式,如果可以返回新列表,则返回新列表,否则返回false。...

<?php

function formatList ( $l, $c, $s, $r )
{
    $s -= 1;

    $p = explode ( $c, $l );

    return ( $r + $s ) <= count ( $p ) ? implode ( $c, array_slice ( $p, $s, $r ) ) : FALSE;
}   

$list = 'Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco';

$split_on = ',';

$start_on = 3;

$return_total = 5;

echo formatList ( $list, $split_on, $start_on, $return_total ); // should be in a if(), just for example


?>

答案 4 :(得分:0)

如果要获得England,China,Uruguay,Spain,Taiwan的5项商品,可以将explodearray_slice结合使用,并为offset指定2,为{{ 1}}。

例如:

length

结果:

$str = "Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco";
$result = array_slice(explode(',', $str),2, 5)
print_r($result);

查看php demo

然后,您还可以使用implode来获取结果,如您的示例:

Array
(
    [0] => England
    [1] => China
    [2] => Uruguay
    [3] => Spain
    [4] => Taiwan
)