说我有一个列表Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco
。
我想要一个从第3个项目开始的列表,总共有5个项目。这意味着我想拥有England,China,Uruguay,Spain,Taiwan
。
如何在PHP上做到这一点?
答案 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项商品,可以将explode与array_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
)