webForumDet fria alternativet

Array och count fast utan värde med 0?!?

2 svar · 447 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Kan man lista ut hur många värden en array innehåller som INTE har värdet 0?
Count() räknar ju alla i en array men vill ha så den enbart skriver antalet som jag önskar ovan.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

PHP har en hög strängfunktioner, t ex array_count_values. Du skulle t ex kunna göra:

$num_allkeys = count($minarray);
$stats = array_count_values($minarray);
$num_zerokeys = $stats[0];
$num_nonzerokeys = $num_allkeys - $num_zerokeys;

Går kanske att göra effektivare med någon annan array-funktion.
Dock har jag en känsla att det du vill göra går att lösa lättare på databasnivå.

SPiNMedlem sedan mars 20007 896 inlägg
#3

Jag hade nog använt array_filter() istället, tillsammans med en callback-funktion. På så sätt är det enkelt att ändra implementationen (om man senare skulle vilja filtrera bort även värden med 1):

function applied_filter($value) {
    return ($value > 0);
}

$my_array = array(4, 10, 2, 0, 12, 71, 0, 13);
$altered_array = array_filter($my_array, 'applied_filter');
/*
    $altered_array = (4, 10, 2, 12, 71, 13);
*/
125 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)