php - 获取数组上的第一个和最后一个单词

时间:2014-11-06 09:42:39

标签: php

刚开始编写PHP,有人能指出我正确的方向吗? 我有:

$text = Barcelona, Catalunya, Spain

我想只得到应该是

的第一个和最后一个词

输出:西班牙巴塞罗那

我尝试了这个,但它给了我最后两个字:

$text = explode(",", $text);
$size = array_slice($text, -2, 2);
$text = implode(",", $size);

输出:西班牙加泰罗尼亚

有人可以帮忙吗?

6 个答案:

答案 0 :(得分:1)

<?php
   $array = array(Barcelona, Catalunya, Spain);
   $first = reset($array);
   $last = end($array);

   var_dump($first, $last);
?>

答案 1 :(得分:1)

试试这个希望它会对你有所帮助:

$text = "Barcelona, Catalunya, Spain";
$array = explode(",",$text);
$first_word = $array[0];
$last_word  = $array[count($array)-1];

echo $first_word. ', '.$last_word; 

输出:

Barcelona,  Spain

答案 2 :(得分:0)

$text现在有值数组

第一个元素:

$text[0]

reset($text)

最后一个元素:

end($text)

答案 3 :(得分:0)

对第一个元素使用current(),为最后一个元素使用end()

$text = "Barcelona, Catalunya, Spain";
$exp = explode(", ", $text);

$string = current($exp) . ", " . end($exp);

DEMO

答案 4 :(得分:0)

如果你想获得第一个和最后一个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)
    );
}

this demo

中可以看到createCenteredGap(1, $text)之类的{{1}}。

答案 5 :(得分:0)

尝试使用这个非常简单的正则表达式

preg_match('/^(.[^,]*)\s*,.*,\s*(.*)$/', $text, $match);
$first = $match[1];
$last = $match[2];

如果您确定元素只是没有数字和其他符号的单词,则可以修改此正则表达式