【发布时间】:2013-03-25 21:12:22
【问题描述】:
如何创建一个 for 循环来比较像这样的变量(任何语言,但专门针对 php):
假设我有 var1 var2 var3,如果其中两个值相同,我希望执行操作。
这是我所拥有的,但显然它不起作用,因为 var1 总是等于 var1,var2 总是等于 var2 等等。
<?php for ($i = 1; $i <= 10; ++$i) {
if (${'var'.$i} == ${'var'.$i}) {
// if match do something
}
else {
do something
}
尝试array_unique。
<?php
for ($i = 1; $i <= $number_of_seats; ++$i) {
$choices = array_unique(array("${'selected_seat'.$i}"));
if (count(${'selected_seat'.$i}) !== count($choices)) {
echo 'action="fail.php"';
}
else {
echo 'action="success.php"';
}
}
?> method="post">
【问题讨论】:
-
问题中的逻辑需要两个循环 - 但为什么要这样做?
-
您能说明一下您的期望吗?也许给出满足您条件的列表和不满足您的条件的列表示例
-
我有一个订票系统,想检查每次选择是否选择了某些座位,如果座位相同,则不允许继续。因此,如果 $var1 是 'A1' 而 $var2 是 'A1' 它会将它们发送到一个页面,但如果 $var1 是 'A1 而 $var2 是 'A2' 它会将它们发送到另一个页面。
-
为什么不把用户输入当作一个数组,只用
array_unique呢?即$choices = array_unique($input); if (count($input) !== count($choices)) { ...。更完整的问题可能会产生更完整的答案。 -
我尝试了你所说的,虽然我不太了解,因为我没有经验。我所知道的唯一输入是在盒子的 $_POST 中找到它们时。