$cash[$key] += 1;
должно быть
$cash[$k] += 1;
Я включил код, который я использовал для тестирования здесь: -
<?php
function test($a){
$cash = array(
'20' => 0,
'30' => 0,
'40' => 0,
'50' => 0,
'60' => 0,
'70' => 0,
'80' => 0,
);
foreach($a as $k => $v) {
if (array_key_exists("$k",$cash) && $v != NULL ) {
$cash[$k] += 1;
}
}
return $cash;
}
// code that I have added to test the function from the post question
$testArray = array(
'20' => 1,
'30' => 2,
'40' => 3,
'50' => 4,
'60' => 5,
'70' => 6,
'80' => 7,
);
$cash = test($testArray);
foreach($cash as $k => $v) {
echo("\n$k : $v");
}
?>
Результаты: -
20 : 1
30 : 1
40 : 1
50 : 1
60 : 1
70 : 1
80 : 1