2013-05-25 3 views
5

Gibt es trotzdem ein Array zu zählen, wenn Wert> 10 ohne Schleife (foreach)?PHP: Wie Array zählen, wenn Wert> 10 ohne Schleife?

$arr=array(5,7,11,67,4,12,15); 
$wanted_output=4 
+0

Was meinen Sie durch COUNT Array-Werte mehr als 10 ' Können Sie Beispiele geben – Baba

+0

Wenn Sie die Nummer des Elements zählen möchten s Verwendung Anzahl ($ Array); –

+0

@Baba Ich denke, er muss die Anzahl der Werte zählen – Gautam3164

Antwort

9

Nur array_reduce verwenden, dann brauchen Sie nicht count

echo array_reduce($arr, function ($a, $b) { 
    return ($b > 10) ? ++$a : $a; 
}); // returns 4 
+1

+1 für die nette Verwendung von array_reduce() –

+0

@MarkBaker danke .. dachte zu viele array_filter Antworten ... – Baba

+0

Ja, zu viele array_filters() :) Ich entschied mich für eine Verwendung mit einem Schließung nur um meine zu unterscheiden –

0

Versuchen mit array_count_values ​​ wie

print_r(array_count_values($my_array)); 

Wenn er die Werte zählen müssen weniger als 10 versuchen, wie

$my_array = array_filter($my_array, function ($n) { 
    return $n > 10; 
}); 
echo count($my_array); 
0

Mit array_count_values: -

$array = array(1, 38, 1, 38,35); 
print_r(array_count_values($array)); 

Ausgang: -

Array 
(
    [1] => 2 
    [38] => 2 
    [35] => 1 
) 

Mit array_filter: -

$arraycount = array_filter($array, function ($n) { 
    return $n > 10; 
}); 
echo count($arraycount); 
2
$minVal = 10; 
$counter = count(
    array_filter(
     $myArray, 
     function($value) use ($minVal) { 
      return $value > $minVal; 
     } 
    ) 
); 
+0

+ Ich mag dies .... mit 'Verwendung ($ minVal)' anstelle von hardcoded Lösung – Baba