[英]How do I use multiple list()/each() calls in a while loop?
我正在使用 3 個不同的 arrays (盡管我暫時只測試兩個)並且我正在嘗試處理$_POST
上的 arrays 。 我目前正在使用:
while(list($key_member,$member)=each($_POST['member_ids'])
&& list($key_amount,$amount)=each($_POST['payment_amounts']))
{
echo "MEMBER: $member<br>";
echo "AMOUNT: $amount<br><br>";
}
如果我在任一數組上使用一個list()
,它將打印該特定項目的信息。 但是,如果我嘗試同時使用多個list()
命令,則只有最后一個list()
ed 項目被正確填充。 list()
是否在后台做了一些詭計,阻止它在 while 循環中工作?
顯然,“簡單”的解決方案是使用索引並簡單地強制解決問題,但我更喜歡枚舉——老實說,我只是好奇
我做錯了什么,和/或list()
什么“壞了”?
漏洞? 不知道。 這是一種解決方法。
while(list($key_member,$member)=each($_POST['member_ids'])){
list($key_amount,$amount)=each($_POST['payment_amounts']);
echo "MEMBER: $member<br>";
echo "AMOUNT: $amount<br><br>";
}
您可以使用 array_keys() 提取每個數組的鍵,這會產生一個索引數組,然后為每個數組保留單獨的循環計數器:
$member_ids = array_keys($_POST['member_ids']);
$amounts = array_keys($_POST['payment_amounts']);
$mi = 0;
$am = 0;
while(1) {
...
$mi++
$am++;
if (count($member_ids) >= $mi) && (count(amounts) >= $am) {
break;
}
}
&&
以短路方式求值,第一個返回 false 的語句會跳出它。 在您的情況下,一旦第一個數組結束,它就會停止迭代。 list
在這里應該可以正常工作,因為它是一種分配變量的語言結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.