0

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

我怎样才能在 PHP 上做到这一点?

4

5 回答 5

3

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

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

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

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

于 2019-02-28T05:58:33.590 回答
1

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

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

文档

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

于 2019-02-28T06:41:00.683 回答
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
于 2019-02-28T06:14:15.737 回答
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


?>
于 2019-02-28T09:43:24.190 回答
0

如果您想获得 5 个项目England,China,Uruguay,Spain,Taiwan,您可以结合使用explode和array_slice并为 the 指定 2offset并为length.

例如:

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

结果:

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

看一个php 演示

然后你也可以使用implode来获得你的例子中的结果:

echo implode(',', $result);
// England,China,Uruguay,Spain,Taiwan
于 2019-02-28T16:13:58.043 回答