2009-11-16 12 views
18

Puoi scrivere quanto segue in una riga di codice?Esplodi e ottieni un valore in una riga di codice

$foo = explode(":", $foo); 
$foo = $foo[0]; 
+2

See: http://stackoverflow.com/questions/13109/php-access-array-value-on-the-fly –

+2

[In PHP 5.4 è possibile!] (Http: // php. net/migration54.new-features) –

risposta

17

si potrebbe usare stristr per questo:

$foo = stristr($foo,":",true); 

dove veri set a offrirti tutto prima della prima istanza di ":"

+1

Grazie, è bellissimo. –

+6

Tieni presente che funzionerà solo in PHP 5.3.0 e versioni successive. –

+0

come posso ottenere il 2 ° elemento usando questo? getta solo il primo elemento. – AMB

5

Sì, è posible a che fare con list:

list($foo) = explode(":", $foo); 
+0

Grazie, è un buon approccio. Tuttavia, mi piacerebbe vedere un approccio che non richiede metodi aggiuntivi. Qualcosa come esplodere (":", $ pippo) [0]; –

+2

PHP non supporta quella sintassi. Sei costretto a fare ciò che vuoi fare in 2 righe. –

+1

Penso che PHP non permetta il codice '... [0]' a differenza di Python o Perl. Ed è per questo che 'list' è stato aggiunto alla lingua. –

7

In alternativa all'elenco(), è possibile utilizzare array_shift()

$foo = array_shift(explode(':', $foo)); 
Problemi correlati