supongo que se podría utilizar array_filter()
para obtener una matriz de todos los elementos que no son cero; y use empty()
en esa matriz resultante, para determinar si está vacía o no.
Por ejemplo, con su matriz de ejemplo:
$data = array(
'a'=>'0',
'b'=>'0',
'c'=>'0',
'd'=>'0');
Usando la siguiente porción de código:
$tmp = array_filter($data);
var_dump($tmp);
¿Le mostrará un conjunto vacío, que no contiene ningún elemento distinto de cero:
array(0) {
}
Y usando algo como esto:
if (empty($tmp)) {
echo "All zeros!";
}
le conseguiría el siguiente resultado:
All zeros!
Por otro lado, con la siguiente matriz:
$data = array(
'a'=>'0',
'b'=>'1',
'c'=>'0',
'd'=>'0');
gama
El $ tmp contendría:
array(1) {
["b"]=>
string(1) "1"
}
Y, como tal, no estaría vacío.
en cuenta que no pasa una devolución de llamada como segundo parámetro a array_filter()
funcionará porque (donde se cita):
Si no se suministra de devolución de llamada, todas las entradas de entrada igual a FALSE (ver converting to boolean) será eliminado.
Será la matriz siempre constará de 4 elementos? –
@fireeyedboy: No – Student