In diesem Fall beträgt die Anzahl der leeren Elemente 3.
Cellfish: array_count_values funktioniert, aber das Skript, dessen Ausführung normalerweise 1 – 2 Sekunden dauert, hat fast 20 Sekunden gedauert! Johnathan: array_keys hat für diese bestimmte Funktion nicht funktioniert. Steve: array_reduce funktioniert auch, aber nicht so schnell wie ich möchte. Camomile: Einfach durch Ändern von $value === ” auf empty($value), was sich als der schnellste Weg herausstellte, dies zu tun. Funktion ohne ($array) { $count = 0; foreach($array as $value) { if(empty($value)) { $count++; } } $count zurückgeben; }
– Tom
23. August 2009 um 20:19 Uhr
Wie wäre es mit verwenden array_count _values um ein Array zu erhalten, in dem alles für Sie gezählt wurde?
array_count_values() ist nicht zuverlässig, wenn die Anzahl Null ist, da nur gefundene Werte zu Schlüsseln werden
– mickmackusa
23. August 2019 um 13:12 Uhr
Samson
Nur eine Idee, die Sie verwenden könnten array_keys( $myArray, "" ) Verwenden des optionalen zweiten Parameters, der einen Suchwert angibt. Zählen Sie dann das Ergebnis.
Ein Benchmarking könnte Ihnen sagen, ob dies schneller ist als array_count_values()
Bhushan Rana
Wir verwenden die Funktion array_filter, um die Anzahl der Werte im Array herauszufinden
$array=array('','','other','','other');
$filled_array=array_filter($array);// will return only filled values
$count=count($filled_array);
echo $count;// returns array count
J. Chomel
Im Allgemeinen nur zum Zählen von Leerzeichen. Hängt wirklich vom Anwendungsfall und der erforderlichen Geschwindigkeit ab. Ich persönlich mag es, Dinge in einer Zeile zu machen.
Wie die gewählte Antwort, aber Sie brauchen immer noch eine Zeile, um die benötigten Daten in eine andere Variable zu extrahieren.
$r = count($x) - count(array_filter($x));
Entsorger
function arrayvaluecount($array) {
$counter = 0;
foreach($array as $val){
list($v)=$val;
if($v){
$counter =$counter+1;
}
}
return $counter;
}
Könnten Sie Ihren Code auch auf Englisch erklären, indem Sie Ihre Antwort bearbeiten?
– Ben
13. Januar 2015 um 8:13 Uhr
Bitte erklären Sie Ihren Code dem OP und den zukünftigen Lesern.
– Sufiyan Ghori
13. Januar 2015 um 9:17 Uhr
9468700cookie-checkAnzahl der Werte im Array mit einem gegebenen Wert zählenyes
Cellfish: array_count_values funktioniert, aber das Skript, dessen Ausführung normalerweise 1 – 2 Sekunden dauert, hat fast 20 Sekunden gedauert! Johnathan: array_keys hat für diese bestimmte Funktion nicht funktioniert. Steve: array_reduce funktioniert auch, aber nicht so schnell wie ich möchte. Camomile: Einfach durch Ändern von $value === ” auf empty($value), was sich als der schnellste Weg herausstellte, dies zu tun. Funktion ohne ($array) { $count = 0; foreach($array as $value) { if(empty($value)) { $count++; } } $count zurückgeben; }
– Tom
23. August 2009 um 20:19 Uhr