【发布时间】:2021-01-18 22:36:27
【问题描述】:
我的代码有问题 - 对 PHP 来说相当新,所以任何指针都将不胜感激。
我有以下代码
foreach(findCustomAlerts($customerid) as $key=>$value){
echo "ID : ".$rifdid = $value['Catid']."<br>";
echo "Visits required per day : ".$visitsneeded= $value['Visits required']."<br>";
}
foreach(getTodaysVisits($device_id) as $rfid){
foreach($rfid as $key=> $read){
if($key ==$rifdid && $read < $visitsneeded) {
echo"<br>". $key." has not visited enough";
}
}
}
但它并没有遍历 foreach - 它只是拾取第一个值然后停止:
ID: 1005
Visits required per day : 3
ID : 2089
Visits required per day : 5
2089 has not visited enough
这是 foreach 应该迭代的数组:
Array
(
[rfid_id] => Array
(
[2089] => 1
[1005] => 3
)
)
我尝试将一个变量放入其中来计算迭代次数:
$i = 0;
foreach(getTodaysVisits($device_id) as $rfid){
foreach($rfid as $key[$i]=> $read){
if($key[$i] ==$rifdid && $read < $visitsneeded) {
echo"<br>". $key[$i]." has not visited enough";
$i++;
}
}
}
但它给了我以下错误:
Warning: Cannot use a scalar value as an array
Notice: Trying to access array offset on value of type int in
所以不确定最好的行动方案是什么,非常感谢任何建议。
【问题讨论】:
-
请确认
getTodaysVisits($device_id)返回的内容。
标签: php arrays if-statement foreach