martes, 22 de diciembre de 2009

Comprobar que un array no es asociativo

Se me ha ocurrido esta función para comprobar que un array no sea asociativo:



function isList($array) {
if (!is_array($array) || count($array) == 0) {
return false;
}
return array_sum(array_keys($array)) > 0;
}
?>

Devuelve true si el array es numérico, y false si no es un array o es asociativo.

En CakePHP puede ser interesante usarlo cuando queremos diferenciar entre los datos devueltos por un read y un find('all'). En el segundo caso, el array es numérico (una clave numérica por cada registro del modelo).

Si los datos vienen de un read (o un find('first')) podemos convertirlos en array numérico con un simple $datos = array($datos), y luego procesar con un foreach. La ventaja es que el mismo código nos vale luego para ambos casos.

Yo voy a usar esta idea para un uploadable behavior en el que estoy trabajando.

No hay comentarios: