2011-08-17 16 views
11

ho questo momento:ottenere tutti i valori di un array ad eccezione dell'ultimo

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

Quello che voglio ora è quello di ottenere tutti i valori nella matrice $k[] tranne l'ultima, e unirsi a loro in una nuova stringa. Quindi, in pratica, se la matrice era:

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

vorrei avere Hello World

risposta

29

Usa array_slice e implode:

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

reso questo ad un oneliner, efficiente codeline devo dire! implode ("/", array_slice (explode ("/", $ serverUrl), 0, -1)); –

1

Usa array_slice($array) per ottenere un sottoinsieme di qualsiasi matrice.

Per tutto senza l'ultimo elemento Credo che sia

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

Testcase http://codepad.org/fyHHX5Us

1

Qualcosa di simile a questo:

<?php 

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

?> 

Example

4

Se è possibile modificare la matrice:

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

array_pop) pop (e restituisce l'ultimo valore della matrice, accorciando array di un elemento. Se array è vuoto (o non è un array), verrà restituito NULL.

Source

+1

Mi piace 'array_pop' meglio di' array_slice' perché quest'ultimo è troppo generico per questo caso specifico. –

Problemi correlati