2014-11-06 60 views
1

刚开始编写PHP代码时,有人能指出我的方向吗? 我有:php - 获取数组中的第一个字和最后一个字

$text = Barcelona, Catalunya, Spain 

我想只有这应该是

输出的第一个和最后一个字:巴塞罗那,西班牙

我尝试这样做,但它给我的最后2个关键词:

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

OUTPUT:加泰罗尼亚,西班牙

能someo请帮助吗?

+2

看看'array_pop'和'array_shift'。它们返回给定数组的第一个和最后一个元素。 – Paul 2014-11-06 09:44:16

+0

'$ text [0]第一个和结束($文本)最后一个元素'或'重置($文本)第一个元素' – 2014-11-06 09:45:02

+0

人们已经及时回复,接受最适合你的答案,但接受...以后帮助别人@ryan – MixedVeg 2014-11-06 11:41:33

回答

0

试试这个,希望它会帮助你:

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

echo $first_word. ', '.$last_word; 

输出:

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

    var_dump($first, $last); 
?> 
0

$text现在具有值的阵列,以便

第一个元素:

$text[0] 

reset($text) 

最后一个元素:

end($text) 
0

为第一要素使用current()end()的最后一个元素

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

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

DEMO

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) 
    ); 
} 

这将这样的伎俩时,被称为像createCenteredGap(1, $text),你可以看到this demo

+0

谢谢!像一个魅力 – ryan 2014-11-06 10:11:08

+0

@ryan也将工作更大的列表广告空白,但我建议你检查之前的函数,如果爆炸按预期工作 – kero 2014-11-06 10:12:57

0

尝试,如果你确信元素是没有数字,你可以莫迪其他符号只有文字使用这个非常简单的正则表达式

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

这个正则表达式

相关问题