2012-01-11 11 views

risposta

26

Array dereferenziazione non è possibile nelle versioni di PHP correnti (purtroppo). Ma è possibile utilizzare list[docs] per assegnare direttamente gli elementi della matrice di variabili:

list($first, $last) = explode("#", "1234#5678"); 

UPDATE

Dal PHP 5.4 (rilasciato 01-mar-2012) Supporta array dereferencing.

+3

e se hai molti valori in stringa, puoi usare $ last = end (explode ('#', $ string)); –

+0

Alternativo per lista è 'lista (, $ ultimo) = ....'. Quindi non avrai la prima variabile sospesa quando non ne hai bisogno. –

8

Molto probabilmente PHP viene confuso dalla sintassi. Basta assegnare il risultato di explode ad un array e quindi l'indice su di esso:

$arr = explode("#", "1234#5678"); 
$last = $arr[1]; 
+1

Wow, che fa schifo: D ... ok, bene lo so ora. – EOB

+0

scatto! dannazione, vinci :) –

3

PHP possono essere un po 'debole. Probabilmente bisogno di fare questo su due linee:

$a = explode("#", "1234#5678"); 
$last = $a[1]; 
5

Non si può fare questo:

explode("#", "1234#5678")[1] 

Perché explode è una funzione, non un array. Restituisce un array, certo, ma in PHP non puoi considerare la funzione come una matrice finché non viene impostata in una matrice.

Questo è come farlo:

$last = explode('#', '1234#5678'); 
$last = $last[1]; 
6

Ecco come ottenere il basso per una riga:

$last = current(array_slice(explode("#", "1234#5678"), indx,1));

Dove indx è l'indice che si desidera nella matrice, nella vostra esempio era 1.

Problemi correlati