Php for循环中的数组值停止页面加载,并创建一个无限循环

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'.'…

我有一个从数据库运行while循环的页面。在显示页面之前,我需要一些信息,因此我不得不设置一个数组来存储while循环信息。while循环完成后,页面将加载

        $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;$mu
var_dump($first);var_dump($second);
string(3)“12”string(2)“30”
尝试将它们转换为整数可能吗?是的。使用
$mu=(int)$first
可以解决问题。@KDJ完成,并进行解释(否则将毫无用处)你摇滚乐!我不知道为什么我总是忽略使用“var_dump()”。我想这可能是我的一个情结,就像一个向别人问路的人:P谢谢你的帮助。现在一切都很好。不客气,@KDJ!在调试数组时也不要忘记使用它,就像使用
echo'。print_r($arr,true)。'
。接受我的答案,因为它解决了你的问题;-)抱歉走开了。正在等待,以便允许我接受。