php - 如何在 foreach 循环中进行调节
问题描述
我有一个数组 $students 的 foreach 循环,我试图将我从表单中获得的参数 $find 与 $students 数组的 $key 值进行比较 -> 如果它们匹配它检查学生是否注册(这有效),如果不应该打印“未找到”,但它没有做任何事情..我尝试了很多东西,但没有任何效果,请帮忙!
我是从芬兰语翻译过来的,所以可能有错字,但问题出在语法上。
//values come from a file
$students[$key] = array('key' => $key, 'name' => $name, 'occ' => $occ);
foreach ($students as $value) {
//This doesn't work - $find comes from a form
if ($value["key"] != $find) {
$phase= "Not found";
$enroll= "";
//echo "$phase $enroll";
continue;
}
//This works
elseif ($value["key"] == $find) {
$phase= $value["name"] . "(" . $value["key"] . "):";
if ($value["occ"] == "1") {
$enroll= " yes";
continue;
}
elseif ($value["occ"] == "0") {
$enroll= "no";
continue;
}
}
//It prints out for example "John(1234): yes"
//But nothing if the studentnumber = key doesn't match..
echo "$phase $enroll";
}
解决方案
你不需要检查$value["key"]
两次
$students[$key] = array('key' => $key, 'name' => $name, 'occ' => $occ);
foreach ( $students as $value ) {
$phase= "Not found";
$enroll= "";
if ( $value["key"] == $find ) {
$phase= $value["name"] . "(" . $value["key"] . "):";
$enroll = ( $value["occ"] == "1" ) ? " yes" : "no";
}
echo "$phase $enroll";
}
推荐阅读
- flutter - 未来的建设者没有获取数据
- rust - 如何查看 Vec
作为 Vec 没有在 Rust 中复制? - mysql - 创建mysql过程时出现错误1064
- android - 如何修复对象不是在android中声明类的实例?
- java - 我如何在电报中共享音频
- javascript - Produce Object from Array of Two Objects
- java - 从多个通知托盘中点击相同的活动,每个托盘都有不同的数据
- algorithm - 具有两个指定通过点的最短简单路径
- python-3.x - 在类中正确定义变量的问题
- ios - 在 SpriteKit 中编写一个围绕像素精灵创建轮廓的着色器