这是我第一次用PHP编码。我正在尝试返回一个包含每种现金金额的数组
public function test($a){
$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;
}
当我尝试测试代码时,出现错误:Invalid argument supplied for foreach()
答案 0 :(得分:0)
foreach()的第一个参数必须是一个数组。 $ a不是数组 还要注意,您正在尝试使用$ count,它以前没有定义为数组。 “ $ cash”分配应为“ $ count”,反之亦然。
答案 1 :(得分:0)
尝试使用test(array('20' => 0));
进行呼叫,但不会收到错误消息。您可能用不是数组的东西来调用它?
答案 2 :(得分:0)
$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
答案 3 :(得分:-2)
也许您可以尝试删除数组末尾的逗号。
更改:'80' => 0,
收件人:'80' => 0