刚开始编写PHP,有人能为我指明正确的方向吗?我有:
$text = Barcelona, Catalunya, Spain
我只想得到应该是的第一个和最后一个单词
输出:西班牙巴塞罗那
我试过了,但它给了我最后两个词:
$text = explode(",", $text);
$size = array_slice($text, -2, 2);
$text = implode(",", $size);
输出:西班牙加泰罗尼亚
有人能帮忙吗?
试试这个,希望它能帮助你:
$text = "Barcelona, Catalunya, Spain";
$array = explode(",",$text);
$first_word = $array[0];
$last_word = $array[count($array)-1];
echo $first_word. ', '.$last_word;
输出:
Barcelona, Spain
对第一个元素使用current(),对最后一个元素使用end()
$text = "Barcelona, Catalunya, Spain";
$exp = explode(", ", $text);
$string = current($exp) . ", " . end($exp);
DEMO
如果你想获得第一个和最后一个x元素,你可以使用array_slice()
,但如果你想要间隙,只需array_combine()
两个像这个一样的切片
function createCenteredGap($gapLength, $text) {
$length = (strlen($text) - $gapLength) / 2;
$gapLength = 1;
return array_merge(
array_slice($text, 0, $length),
array_slice($text, $length+$gapLength, $length)
);
}
当像createCenteredGap(1, $text)
一样调用时,这将起到作用,正如您在这个演示
<?php
$array = array(Barcelona, Catalunya, Spain);
$first = reset($array);
$last = end($array);
var_dump($first, $last);
?>
尝试使用这个非常简单的regexp
preg_match('/^(.[^,]*)'s*,.*,'s*(.*)$/', $text, $match);
$first = $match[1];
$last = $match[2];
如果您确定元素只是没有数字和其他符号的单词,则可以修改此regexp
$text
现在具有值数组,因此
第一个元素:
$text[0]
或
reset($text)
最后一个元素:
end($text)