Ich muss große Arrays überprüfen, um zu sehen, ob sie zu 100% mit numerischen Werten gefüllt sind. Der einzige Weg, der mir in den Sinn kommt, ist foreach und dann is_numeric für jeden Wert, aber ist das der schnellste Weg?Was ist der schnellste Weg zu prüfen, ob alle Werte in einem Array numerisch sind?
Antwort
Ihren Array unter der Annahme, eindimensional und nur aus den ganzen Zahlen:
return ctype_digit(implode('',$array));
Ich musste meine Vote rückgängig machen, 'false' und' NULL' Werte, die false für 'is_numeric()' zurückgeben, werden hier als leere Strings implodiert, indem 'ctype_digit()' entkommt. – BoltClock
@BoltClock: OP versichert das Array ist "100% mit numerischen Werten gefüllt" – stillstanding
Ich denke, implode Operation ist ziemlich teuer in der Zeit. – rsk82
Der schnellste Weg sein könnte, um nur sie alle Zahlen sind übernehmen und mit dem Betrieb fortsetzen. Wenn Ihre Operation später fehlschlägt, dann wissen Sie, dass etwas keine Ziffer ist. Aber wenn sie alle tatsächlich Ziffern sind ... kann man nicht viel schneller als O (0) kommen!
Aber einige nicht-numerische Werte werden wegen des schwachen Typing/autocasting durchgehen. Die Annahme ist nicht sicher. – Umbrella
Warum wurde das als Antwort akzeptiert? Es überprüft nichts ... –
Diese kleine Funktion funktioniert für mich
function IsNumericarr($arr){
if(!is_array($arr)){
return false;
}
else{
foreach($arr as $ar){
if(!is_numeric($ar)){
return false;
exit;
}
}
return true;
}
}
Loop-Fein ist
benötigtarray_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))
Diese Antwort wurde aufgrund ihrer Länge und ihres Inhalts automatisch als minderwertig gekennzeichnet. Eine Erklärung würde dazu beitragen, dass diese Antwort eher wie eine Stack-Overflow-Antwort aussieht. – Popnoodles
Filter das Array mit is_numeric. Wenn die Größe des Ergebnisses identisch mit dem Original ist, sind alle Elemente numerisch:
$array = array(1, '2', '45');
if (count($array) === count(array_filter($array, 'is_numeric'))) {
// all numeric
}
- 1. Was ist der schnellste Weg zu einem sehr einfachen Blog?
- 2. In C++, was ist der schnellste Weg zu sagen, ob zwei Zeichenketten oder Binärdateien unterschiedlich sind?
- 3. Was ist der schnellste Weg, um alle fehlenden Nummern in unsortiertem Array zu finden
- 4. .NET - SQL Select -> Array. Was ist der schnellste Weg?
- 5. Der schnellste Weg zu erkennen, ob ein Double endlich ist?
- 6. Was ist der schnellste Weg zu überprüfen, ob ein Punkt innerhalb eines Polygons in Python ist
- 7. In .Net, was ist der schnellste Weg, alle Dateien aus einem Stammverzeichnis rekursiv zu finden?
- 8. Was ist der schnellste Weg, Patches eines Arrays zu vergleichen?
- 9. Was ist der schnellste Weg zu überprüfen, ob eine Website in Perl oder C ist?
- 10. cross-dbms Weg zu überprüfen, ob die Zeichenkette numerisch ist
- 11. Was ist der schnellste Weg, um zu rehasen?
- 12. Was ist der schnellste Weg, mehrere Dateien zu catchen?
- 13. Was ist der schnellste Weg zu HTTP GET in Python?
- 14. Was ist der schnellste Weg, um eine Datenzeile zu erfassen?
- 15. Was ist der schnellste Weg zu überprüfen, ob eine Zahl in einem bestimmten Bereich in Python ist?
- 16. Schnellste Möglichkeit zu prüfen, ob eine Zeichenfolge geparst werden kann
- 17. NSMutableArray. Was ist der schnellste Weg, um es in eine einfache ole C-Array zu konvertieren
- 18. Was ist der schnellste Weg, um bestimmte Zeilen und Spalten aus einem Numpy NDarray zu extrahieren?
- 19. Was ist der schnellste Weg, Google Storage Bucket zu duplizieren?
- 20. Was ist der schnellste Weg, Daten von ArrayList zu filtern?
- 21. Was ist der beste Weg, um alle Werte in einem Pandas-Datenrahmen zu summieren?
- 22. ist Delegierter der schnellste Weg der Bindung?
- 23. Was ist der schnellste Weg, um ein 2D-Array von Farbtriplets auf dem Bildschirm zu zeichnen?
- 24. schnellste Möglichkeit zu bestimmen, ob ein Element in einem sortierten Array ist
- 25. MongoDB - Was ist der schnellste Weg, um alle Datensätze in einer Sammlung zu aktualisieren?
- 26. Was ist der beste Weg zu prüfen, ob ein Attribut existiert und gesetzt ist?
- 27. Was ist der schnellste Weg, CRUD über CGI auf einem Datenbank-Handle in Perl zu bekommen?
- 28. Was ist der schnellste Weg, um Strings in Objective-C zu suchen?
- 29. Was ist der beste Weg, um alle Kombinationen von Elementen in einem Array zu finden?
- 30. PHP - Überprüfen, ob Werte in einem Array in einem anderen Array mehrdimensionalen Array vorhanden sind
* Jede * Lösung für dieses Problem wird die Array-Werte durchlaufen. Ob Sie es in Code oder einer Funktion tun müssen, ist für Sie eine andere Frage, aber in beiden Fällen gibt es eine Schleife. Also denke ich, dass die Performance ziemlich gleich sein sollte, egal was du tust. – Joey
Was ist mit der Validierung der Werte, bevor sie in das Array gelangen? –
Es ist nicht so einfach, weil die Werte in das Array kommen und aus dem Array auf zufällige Weise gehen und einige von ihnen können Null oder falsch oder "", und dann muss ich Berechnungen mit ihnen durchführen, und das Ergebnis dieser Berechnungen muss null sein, wenn Einige der Daten im Array sind nicht numerisch. – rsk82