2012-02-27 9 views
13

explode en las declaraciones de cadena vacía recuento de matriz como 1.explotar el vacío de la matriz vuelva cadena contará como 1

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

Si hay algún valor en $docDet['doc_cons_filename'] como ab|cd|de luego vuelve count($consName) 3.

Pero su regresan 1 si $docDet['doc_cons_filename'] tiene un valor vacío.

es posible volver cuentan como 0 si realizamos count(explode("|",$docDet['doc_cons_filename'])) donde $docDet['doc_cons_filename'] = ""

¿Puede alguien ayudarme con solución?

+3

¿Qué solución quieres? – BoltClock

+3

Esto se debe a que la cadena vacía está antes del primer (y no existente) carácter separador. ¿Por qué es malo para ti? –

+3

Sí, 'explode()' devuelve una matriz. Puede que solo tenga un elemento si no se encuentra un delimitador. –

Respuesta

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

'explotar' devuelve falso si el' delimitador' está en blanco, no la cadena de entrada. Además, necesita ambos parámetros en 'explotar'. –

+0

Eso está mal, solo devuelve 'FALSE' cuando la cadena del delimitador está vacía – klaustopher

+0

también tiene sus variables mezcladas. guarda el resultado de explotar en $ str y luego verifica el recuento de $ arr que es la variable original que está explotando. –

5

La solución sería contar explícitamente cuántas veces separador se encuentra dentro de su cadena. Ver substr_count()

+1

Ningún ejemplo dado –

+0

Hay muchos en la página vinculada – Mchl

Cuestiones relacionadas