2012-02-27 8 views
13

explode na pustych strun liczyć jako tablica 1.eksplodować na pustych strun tablicy liczyć jako 1

$consName =explode("|",$docDet['doc_cons_filename']); 
    count($consName); 

Jeżeli jest jakaś wartość w $docDet['doc_cons_filename'] jak ab|cd|de następnie count($consName) zwrotów 3.

Ale jego powracających 1 jeśli $docDet['doc_cons_filename'] ma pustą wartość.

jest to możliwe, aby powrócić rachubę jako 0, jeśli wykonujemy count(explode("|",$docDet['doc_cons_filename'])) gdzie $docDet['doc_cons_filename'] = ""

Czy ktoś może mi pomóc w rozwiązaniu?

+3

Jakie rozwiązanie chcesz? – BoltClock

+3

Jest to spowodowane pustym łańcuchem przed pierwszym (i nieistniejącym) znakiem separatora. Dlaczego to jest dla ciebie złe? –

+3

Tak, 'explode()' zwraca tablicę. Może mieć tylko element, jeśli nie znaleziono separatora. –

Odpowiedz

-3
$arr = array(); 
$str = "yes you are!"; 
if($i = substr_count($str,"|")) 
    $arr = explode("|", $str, $i+1); 
echo count($arr); 
+0

'explode' zwraca false, jeśli' delimiter' jest puste, a nie ciąg wejściowy. Ponadto potrzebujesz obu parametrów w 'eksplodować'. –

+0

To jest złe, zwraca tylko 'FALSE', gdy łańcuch ograniczników jest pusty – klaustopher

+0

masz również zmienione swoje zmienne. zapisujesz wynik wybuchu do $ str, a następnie sprawdzasz liczbę $ arr, która jest oryginalną zmienną, którą eksplodujesz. –

5

Rozwiązaniem byłoby policzyć ile razy wyraźnie separator znajduje się w obrębie łańcucha. Patrz: substr_count()

+1

Nie Przykład podany –

+0

Istnieje wiele na powiązanej stronie – Mchl

Powiązane problemy