2011-05-15 12 views
5

Zastanawiam się tylko, czy istnieje sposób napisania tego kodu w jednej linii.Funkcja PHP Explode

$exp = explode(" ", $text); 
$cut = $exp[0]; 

Więc bez konieczności przypisywania zmiennych.

Dzięki

Odpowiedz

8

Jeśli tylko kiedykolwiek chcą pierwszą część, następnie unikać obejście tablicy z strtok:

$cut = strtok($text, " "); 

on wycina coś z ciąg do pierwszego separatora (spacja w twoim przypadku).

+5

To jest bardzo dobra odpowiedź i działa doskonale, chyba że pierwszym znakiem jest '' ". Wynik pytania OP będzie pustym ciągiem, a wynikiem twojej odpowiedzi będzie ciąg znaków z char na pozycji 1 do następnej. +1 i tak. – AndersTornkvist

+0

@ richard86: Interesujące. Nigdy nie zdawałem sobie sprawy, że faktycznie przeskakuje do pierwszego nie-ogranicznika. Zwykle stosuje się 'trim()', aby uzyskać dokładne zachowanie. Ale to jest znacząca różnica do wybuchu, jeśli możesz potrzebować/oczekiwać również pustego fragmentu. – mario

3
$var = reset(explode(" ", $text)); 
+0

ale byś skończyć z '$ var' który ma pierwszy element (np pytań' $ cut', ale nic, co miałoby pełną tablicę, jak '$ exp ' – Nanne

+0

spowoduje to również błąd:' Surowe standardy: tylko zmienne powinny być przekazywane przez odniesienie ' – meze

+0

@Nanne.To jest pytanie o OP. – PeeHaa

3
$cut = substr ($text, 0, strpos ($text, ' ')); 

LUB

$cut = substr (trim ($text), 0, strpos (trim ($text), ' '));