Debo comprobar las matrices grandes para ver si están 100% llenas de valores numéricos. La única forma en que me viene a la mente es foreach y luego is_numeric para cada valor, pero ¿es esa la manera más rápida?¿Cuál es la forma más rápida de verificar si todos los valores en una matriz son numéricos?
Respuesta
asumiendo que su matriz es unidimensional y simplemente compuesta de números enteros:
return ctype_digit(implode('',$array));
Tuve que deshacer mi voto, los valores 'false' y' NULL', que devuelven false para 'is_numeric()' se implosionan como cadenas vacías aquí, escapando 'ctype_digit()'. – BoltClock
@BoltClock: OP asegura que la matriz está "100% llena con valores numéricos" – stillstanding
Creo que la operación de implosión es bastante costosa en el tiempo. – rsk82
La forma más rápida podría ser simplemente asumir que todos son números y continuar con su operación. Si su operación falla más tarde, entonces sabrá que algo no es un número. Pero si todos son números ... ¡no se puede obtener mucho más rápido que O (0)!
Pero algunos valores no numéricos se saldrán debido a la debilidad/autocasting. La suposición no es segura. – Umbrella
¿Por qué esto fue aceptado como la respuesta? No comprueba nada ... –
Esta pequeña función funciona bien para mí
function IsNumericarr($arr){
if(!is_array($arr)){
return false;
}
else{
foreach($arr as $ar){
if(!is_numeric($ar)){
return false;
exit;
}
}
return true;
}
}
Loop se necesita
array_map("is_numeric", array(1,2,"3","hello"))
Array ([0] => 1 [1] => 1 [2] => 1 [3] =>)
if(array_reduce($array, function($c, $v){return $c & (int)is_numeric($v);}, 1))
Esta respuesta se marcó automáticamente como de baja calidad debido a su longitud y contenido. Una explicación ayudaría a que esta respuesta se parezca más a una respuesta de desbordamiento de pila. – Popnoodles
filtro de la matriz mediante is_numeric. Si el tamaño del resultado es el mismo que el original, todos los elementos son numéricos:
$array = array(1, '2', '45');
if (count($array) === count(array_filter($array, 'is_numeric'))) {
// all numeric
}
- 1. ¿Cuál es la forma más rápida de verificar si dos números dados son coprime?
- 2. ¿Cuál es la forma más rápida de verificar si dos Tbitmaps son iguales?
- 3. Compruebe todos los valores en una matriz son los mismos
- 4. MongoDB: ¿Cuál es la forma más rápida de actualizar todos los registros en una colección?
- 5. ¿Cuál es la forma más rápida de convertir una matriz de flotadores en una cadena?
- 6. La forma más rápida de verificar si existe un objeto
- 7. ¿Cuál es la forma portátil más rápida de copiar una matriz en C++
- 8. MySQL - La forma más rápida de verificar si los datos en la tabla InnoDB han cambiado
- 9. ¿La forma más rápida de verificar si un tipo es blittable?
- 10. ¿Cuál es la manera más rápida de verificar si una clase tiene una función definida?
- 11. ¿Cuál es la forma más rápida de verificar si una palabra de una cadena está en otra cadena?
- 12. ¿Cuál es la forma más rápida de ordenar una matriz de 7 enteros?
- 13. ¿Cuál es la forma más rápida de verificar si la cadena tiene una letra mayúscula en C#?
- 14. ¿Cómo puedo verificar si todos los elementos de una matriz son idénticos en Perl?
- 15. La forma más rápida de verificar si se puede analizar una Cadena en Doblar en Java
- 16. ¿Cuál es la mejor y más rápida forma de verificar si la imagen es válida en PHP?
- 17. ¿Una forma extremadamente rápida de clonar los valores de una matriz dentada en una segunda matriz?
- 18. ¿Cuál es la forma más corta/más idiomática de determinar si una variable es cualquiera de una lista de valores?
- 19. ¿Cuál es la forma más confiable de verificar si una variable de JavaScript es nula?
- 20. ¿Cuál es la mejor/más rápida/la forma más fácil de contraer todos los proyectos en Visual Studio?
- 21. ¿Hay algún método para verificar si todos los elementos de la matriz son '0'?
- 22. ¿Cuál es la forma más rápida de grabar varios archivos?
- 23. ¿Cuál es la forma más rápida de aplicar t.test a cada columna de una matriz grande?
- 24. ¿Cuál es la forma más rápida de comparar dos mapas de bits de igual tamaño para determinar si son idénticos?
- 25. ¿Cuál es la manera más rápida de verificar si hay dígitos duplicados de un número?
- 26. ¿Cuál es la forma más fácil o más rápida de hacer que CSS represente lo mismo en todos los navegadores?
- 27. En .Net, ¿cuál es la forma más rápida de buscar de forma recursiva todos los archivos desde un directorio raíz?
- 28. ¿Cómo comprobar si todos los elementos de una matriz son los mismos, en matlab?
- 29. ¿Cuál es la forma más rápida de saltar a un constructor (es) en una clase?
- 30. ¿La forma más rápida de verificar si un objeto existe en Core Data o no?
* Cualquier * solución a este problema pasará por los valores de la matriz. Si necesita hacerlo en código o una función lo hace para usted es otra pregunta, pero en ambos casos hay un bucle. Así que supongo que el rendimiento debería ser prácticamente el mismo, independientemente de lo que hagas. – Joey
¿Qué hay de validar los valores antes de que entren en la matriz? –
No es tan simple porque los valores entran y salen de la matriz de forma aleatoria y algunos de ellos pueden ser nulos o falsos o "", y luego debo hacer cálculos con ellos, y el resultado de estos cálculos debe ser nulo si algunos de los datos en la matriz no son numéricos. – rsk82