note 55169 deleted from function.array-diff by betz

From: Date: Wed, 27 Jul 2005 06:07:50 +0000
Subject: note 55169 deleted from function.array-diff by betz
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-92526@lists.php.net to get a copy of this message
Note Submitter: jestrada at webmedia dot com dot mx Reason: non-english ---- Esta funcion tiene un bug, al parecer en una variable de contador, ya que en algunas ocasiones llega a regresar elementos vacios en el arreglo del resultado. Esta variable de contador probablemente se encuentre en la parte que va agregando los elementos diferentes entre los arreglos al nuevo arreglo. Aqui una version que hice de la función, solo que esta limitada a comparar el primer arreglo solo con un arreglo mas, y no con n arreglos como la función original del PHP. Fue al hacer esta funcion que me di cuenta del probable lugar del error en la funcion original de PHP Espero les sirva -------- function fcn_array_diff($arr_comparado, $arr_compararEn) //prke no sirve la maldita funcion array_diff que trae por default php { $i_maxComparado = count($arr_comparado); $i_maxCompararEn = count($arr_compararEn); $arr_result[0] = ""; $i_result = 0; // echo "Ini<hr><p>"; for ($i=0; $i<$i_maxComparado; $i++) { $st_valorComparado = chop($arr_comparado[$i]); // echo "<font color=\"cyan\">Comparado: ".$st_valorComparado."</font><p>"; $l_existe = false; for ($j=0; $j<$i_maxCompararEn; $j++) { $st_valorCompararEn = chop($arr_compararEn[$j]); // echo "<font color=\"orange\">Comparar en: ".$st_valorCompararEn."</font><p>"; if ($st_valorComparado == $st_valorCompararEn) { $l_existe = true; break; } } if ($l_existe == false) { $arr_result[$i_result] = $st_valorComparado; // echo "<font color=\"pink\">Agregar: ".$arr_result[$i_result]."</font><p>"; $i_result++; } } $i_maxResult = count($arr_result); for ($i=0; $i<$i_maxResult; $i++) { // echo "<font color=\"blue\">(: ".$arr_result[$i].")</font><p>"; } // echo "fin<hr><p>"; return $arr_result; } ---------- NOTA: Las partes que están comentadas fueron banderas que puse para ir localizando el posible error que menciono.

« previous php.notes (#92526) next »