2013-05-25 6 views
5

Esiste comunque un conteggio dell'array se il valore> 10 è senza loop (foreach)?PHP: Come contare la matrice se il valore> 10 senza il ciclo?

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

Che cosa si intende per 'valori di matrice contare più di 10' puoi dare esempi – Baba

+0

Se vuoi contare il numero di elementi s usa count ($ array); –

+0

@Baba Penso che debba contare il numero di valori – Gautam3164

risposta

9

Basta usare array_reduce allora non è necessario count

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

+1 per il buon uso di array_reduce() –

+0

@MarkBaker grazie .. ha capito troppe risposte array_filter ... – Baba

+0

Sì, troppi array_filters() :) Ho deciso di usare un 'use' con un chiusura solo per differenziare il mio –

0

Prova con array_count_values ​​ come

print_r(array_count_values($my_array)); 

Se ha bisogno di contare i valori inferiori a 10 provano come

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

Uso array_count_values: -

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

uscita: -

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

Utilizzando 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

+ Mi piace questo .... usando 'uso ($ MINVAL)' al posto della soluzione hardcoded – Baba

Problemi correlati