使用循环来消除由数组检索的数字

时间:2016-05-20 07:13:30

标签: php arrays loops

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<select>
<?php 
include 'connection.php';
$q = "SELECT * FROM rooms WHERE duration='first lecture' and day='Sunday'";
$r = mysql_query($q); 
$ro = mysql_num_rows($r);
if($ro==0) {
for($i=1; $i<=14; $i++) { ?>
<option value=""><?php echo $i; ?></option>
<?php
} }
else {
while($row = mysql_fetch_array($r)){

for ($i=1; $i<=14; $i++)
{
$exclude = array($row['name']);
if(in_array($i, $exclude)) continue;
?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php
}
}
}
?>          
</select>
</body>
</html>

我想使用FOR LOOP在一个循环中消除由数组检索的元素。假设$ row检索到的值(4,5),我想要的FOR FOR LOOP是显示1到14之间的数字,除了(4,5)。

我尝试了很多次并且我成功了,但是第一次循环消除了(4),第二次消除了(5)。

有没有办法一次消除这两种情况?

我需要$ row ['name']因为它检查空房间的可用性范围从1到14所以如果我选择(4,5)它将是静态方法我动态地需要它

2 个答案:

答案 0 :(得分:0)

我尝试使用您的代码,我认为这是正确的。

let icon1 = UITabBarItem(title: "Title1", image: UIImage(named: "homenormal")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "home")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
let icon2 = UITabBarItem(title: "Title2", image: UIImage(named: "usernormal")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "user")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))

dashboard = DashboardViewController(nibName: CommonClass.DeviceType.IS_IPAD ? "DashboardViewControlleriPad" : "DashboardViewController", bundle: nil)

userMain = UserMainViewController (nibName : CommonClass.DeviceType.IS_IPAD ?  "UserMainViewControlleriPad" : "UserMainViewController", bundle : nil )

tabbar = UITabBarController()
tabbar!.viewControllers = [dashboard!, userMain!]
dashboard!.tabBarItem = icon1
userMain!.tabBarItem = icon2
window!.rootViewController = tabbar
window?.makeKeyAndVisible()

顺便问一下,你能显示查询的结果吗?问题可能出在那里。

答案 1 :(得分:0)

你可以比较两个阵列。

$array1 = range(1,14); // Your 14 rooms
$array2 = array(4, 5); // The rooms taken
$result = array_diff($array1, $array2); // Find the rooms not taken

echo "<select>";
foreach($result as $rooms) {
    echo "<option value=''>" . $rooms . "</option>";
}
echo "</select>";