2011-08-17 41 views
11

我現在有這個權利:獲得陣列中的所有值除了最後一個

$s = preg_split('/\s+/', $q); 
    $k = end($s); 

我現在想要的是獲取數組$k[]中的所有值,除了最後一個,和他們一起一個新的字符串。所以基本上如果陣列:

0 => Hello 
1 => World 
2 => text 

我會得到Hello World

回答

29

使用array_sliceimplode

$k = array("Hello", "World", "text"); 
$sliced = array_slice($k, 0, -1); // array ("Hello", "World") 
$string = implode(" ", $sliced); // "Hello World"; 
+2

製造這一個oneliner,高效的代碼行我必須說! implode(「/」,array_slice(explode(「/」,$ serverUrl),0,-1)); –

1

使用array_slice($array)得到任何陣列的一個子集。

一切沒有的最後一個項目,我相信這是

$return = array_slice($array, 0, count($array)-1, true); 

測試用例http://codepad.org/fyHHX5Us

1

事情是這樣的:

<?php 

    $array = array('Hello', 'World', 'text'); 
    $new_array = array_slice($array,0,-1); 
    echo implode(' ',$new_array); 

?> 

Example

4

如果可以修改數組:

array_pop($k); 
$string = join(' ', $k); 

array_pop()彈出並返回數組的最後一個值,由一個元件縮短陣列。如果數組爲空(或不是數組),則返回NULL。

Source

+1

我比'array_slice'更喜歡'array_pop',因爲後者對於這個特定的情況太普遍了。 –

相關問題