说我有一个清单Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco。我想要一个从第 3 项开始的列表,总共有 5 项。这意味着我想拥有England,China,Uruguay,Spain,Taiwan.
我怎样才能在 PHP 上做到这一点?
您可以简单地将字符串转换为数组,例如
$str = "Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco";
$array = explode(",",$str);
然后用于array_slice跳过前 2 个项目
print_r(implode(",",array_slice($array,2)));
您可以将限制设置为爆炸函数(第三个参数)并获取结果数组的最后一项
$str = 'Poland,USA,England,China,Uruguay,Spain,Taiwan,Monaco';
echo $result = explode(',', $str, 3)[2]; //England,China,Uruguay,Spain,Taiwan,Monaco
从文档
如果 limit 设置为正,则返回的数组将包含最大限制元素,最后一个元素包含字符串的其余部分。
<?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
只是作为函数的另一种方式,如果可以返回新列表,则返回新列表,否则返回 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
?>
如果您想获得 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