我正在开发一款应用,而且我被卡住了。
我想在foreach
内switch
这样做:
<?PHP
$gtid = $_GET['id'];
// ID(key) => value
$dbs = array(
"ZTI10" => "Example1",
"O1JTQ" => "Example2",
"4V1OR" => "Example3"
);
switch($gtid){
foreach ($dbs as $key => $value) {
case $key:
echo "On ID $key is $value";
break;
}
}
?>
这甚至可能吗?或者还有其他方法可以做我想要的吗?
提前致谢。
答案 0 :(得分:4)
如果甚至不需要循环
if (isset($dbs[$_GET['id']])) {
echo sprintf('On ID %s is %s', $_GET['id'], $dbs[$_GET['id']]);
}
答案 1 :(得分:3)
不,你不能这样做。在if
循环中使用简单的foreach
语句代替:
foreach ($dbs as $key => $value) {
if ($gtid == $key) {
echo "On ID $key is $value";
break;
}
}
此处的break
会导致执行立即跳出foreach
循环,因此它不会评估数组的任何其他元素。
答案 2 :(得分:1)
没有
简单的方法:
<?php
$gtid = $_GET['id'];
$dbs = array(
"ZTI10" => "Example1",
"O1JTQ" => "Example2",
"4V1OR" => "Example3"
);
if ( isset($dbs[$gtid]) ) {
echo "On ID $gtid is $dbs[$gtid]";
} else {
// default
}
?>