Php for循环中的数组值停止页面加载,并创建一个无限循环
我有一个从数据库运行while循环的页面。在显示页面之前,我需要一些信息,因此我不得不设置一个数组来存储while循环信息。while循环完成后,页面将加载Php for循环中的数组值停止页面加载,并创建一个无限循环,php,Php,我有一个从数据库运行while循环的页面。在显示页面之前,我需要一些信息,因此我不得不设置一个数组来存储while循环信息。while循环完成后,页面将加载 $first = $data[$key]['order'][$data_order_id]['lowest_staff_markup']; $second = $data[$key]['order'][$data_order_id]['lowest_markup']; 如果我使用echo$first'.'…
$first = $data[$key]['order'][$data_order_id]['lowest_staff_markup'];
$second = $data[$key]['order'][$data_order_id]['lowest_markup'];
如果我使用echo$first'.'…'$第二代码>它返回12。。。30
值设置正确。阵列工作正常
现在我需要在数字之间设置一个for循环。如果我手动输入12和30,效果很好。但当我尝试将$first和$second放入时,整个for循环将冻结页面并创建一个无限循环12
echo '<select name="markup['. $cart_result['product_table'] .':'. $cart_result['product_id'] .']" />'; // fix this
for ($mu = $first;
$mu <= $second;
$mu++) {
echo '<option value="'. $data[$key]['order'][$data_order_id]['markup_key'] .'">'. $mu .' %</option>';
}
echo '</select>';
echo';//解决这个问题
对于($mu=$first);
$mu在注释中使用OP调试后
var_dump($first);
var_dump($second);
似乎$first
包含一个空格:
字符串(3)“12”
字符串(2)“30”
解决方案:
将字符串强制转换为整数可解决此问题:
for ($mu = (int)$first; $mu <= (int)$second; $mu++) {
// code here ...
}
for($mu=(int)$first;$muvar_dump($first);var_dump($second);
?string(3)“12”string(2)“30”
尝试将它们转换为整数可能吗?是的。使用$mu=(int)$first
可以解决问题。@KDJ完成,并进行解释(否则将毫无用处)你摇滚乐!我不知道为什么我总是忽略使用“var_dump()”。我想这可能是我的一个情结,就像一个向别人问路的人:P谢谢你的帮助。现在一切都很好。不客气,@KDJ!在调试数组时也不要忘记使用它,就像使用echo'。print_r($arr,true)。'
。接受我的答案,因为它解决了你的问题;-)抱歉走开了。正在等待,以便允许我接受。