Devo controllare i big array per vedere se sono riempiti al 100% con valori numerici. L'unico modo che mi viene in mente è foreach e quindi is_numeric per ogni valore, ma è il modo più veloce?Qual è il modo più rapido per verificare se tutti i valori in una matrice sono numerici?
risposta
supponendo che la matrice è unidimensionale e appena fatta di numeri interi:
return ctype_digit(implode('',$array));
Dovuto annullare il mio voto, i valori 'false' e' NULL', che restituiscono false per 'is_numeric()' sono implosi come stringhe vuote qui, che sfuggono a 'ctype_digit()'. – BoltClock
@BoltClock: OP assicura che l'array è "100% pieno di valori numerici" – stillstanding
Penso che l'operazione implode sia piuttosto costosa nel tempo. – rsk82
Il modo più veloce potrebbe essere quella di assumere solo sono tutti numeri e proseguire con l'operazione. Se la tua operazione fallisce in seguito, sai che qualcosa non è un numero. Ma se sono tutti numeri in realtà ... non puoi ottenere molto più veloce di O (0)!
Ma alcuni valori non numerici scorreranno a causa di weaktyping/autocasting. L'ipotesi non è sicura. – Umbrella
Perché è stato accettato come risposta? Non controlla nulla ... –
Questa piccola funzione funziona bene per me
function IsNumericarr($arr){
if(!is_array($arr)){
return false;
}
else{
foreach($arr as $ar){
if(!is_numeric($ar)){
return false;
exit;
}
}
return true;
}
}
loop è necessario
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))
Questa risposta è stata contrassegnata automaticamente come di bassa qualità a causa della sua lunghezza e del suo contenuto. Una spiegazione potrebbe aiutare questa risposta a diventare più simile a una risposta di Overflow dello stack. – Popnoodles
Filtrare l'array usando is_numeric. Se la dimensione del risultato è la stessa dell'originale, tutti gli elementi sono numerici:
$array = array(1, '2', '45');
if (count($array) === count(array_filter($array, 'is_numeric'))) {
// all numeric
}
- 1. Come verificare se tutti i valori nella matrice sono identici?
- 2. typeof() per verificare i valori numerici
- 3. Come verificare se tutti i valori nelle colonne di una matrice numpy sono uguali?
- 4. Qual è il modo più veloce per verificare se una classe ha una funzione definita?
- 5. modo rapido per verificare se un array di caratteri è zero
- 6. Verificare se i valori in un set sono in una matrice numpy in python
- 7. Qual è il modo più veloce per verificare se due Tbitmap sono uguali?
- 8. Qual è il modo più veloce per verificare se due numeri dati sono coprimi?
- 9. Qual è il modo più affidabile per verificare se una variabile JavaScript è nullo?
- 10. per verificare se tutti EditText sono vuoti
- 11. In ASP.NET, qual è il modo più rapido per ottenere l'URl di base per una richiesta?
- 12. Il modo migliore per verificare se una variabile è nulla?
- 13. modo più rapido per trovare il valore più grande ennesima in una matrice NumPy
- 14. Qual è il modo migliore per impostare tutti i valori di una matrice tridimensionale su zero in Java?
- 15. C un modo più rapido per verificare se esiste una directory
- 16. Test se tutti i valori in una matrice numpy sono uguali
- 17. Qual è un modo rapido per verificare se esiste un file?
- 18. Verifica Se sono stati immessi solo valori numerici nell'input. (JQuery)
- 19. Qual è il modo più rapido per determinare se esiste una riga che utilizza Linq in SQL?
- 20. Modo corretto per verificare se i thread sono stati eseguiti?
- 21. Il modo più rubino per ottenere una matrice contenente valori specifici da una matrice di oggetti?
- 22. Qual è il modo migliore e più veloce per verificare se l'immagine è valida in PHP?
- 23. Excel VBA Il modo più rapido per ordinare una matrice di numeri in ordine decrescente?
- 24. Qual è il modo più veloce per verificare se Input String è un'espressione RPN corretta?
- 25. Numpy: il modo più veloce per verificare se tutti gli elementi in una matrice hanno lo stesso segno?
- 26. Quale è un modo migliore per verificare se una matrice ha più di un elemento?
- 27. Yii2 - Qual è il modo migliore per ottenere tutti i valori degli attributi del modello univoci?
- 28. Pandas - controllare se tutti i valori sono NaN in serie
- 29. Qual è il modo giusto per sopprimere i segnali Qt quando i valori sono impostati in modo esplicito
- 30. C# in VS2005: qual è il modo migliore per verificare se una stringa è vuota?
* Qualsiasi * soluzione a questo problema si sovrapporrà ai valori dell'array. Se hai bisogno di farlo in codice o in una funzione, questo è per te un'altra domanda, ma in entrambi i casi c'è un ciclo. Quindi immagino che le prestazioni dovrebbero essere più o meno le stesse, indipendentemente da ciò che fai. – Joey
E a proposito di convalidare i valori prima che entrino nell'array? –
Non è così semplice perché i valori entrano e passano dall'array in modo casuale e alcuni di essi possono essere nulli o falsi o "", e quindi devo fare calcoli con essi, e il risultato di questi calcoli deve essere nullo se alcuni dati nell'array non sono numerici. – rsk82