2011-09-23 259 views
0

我有兩個數組。我想要做的是比較兩個數組的鍵['user_id'],如果它們相同,則以隱藏形式傳遞['user_id']和['ref']。我試圖把它們放到兩個foreach中,但系統似乎陷入了死鎖。如何循環並同時比較兩個數組(PHP)

<?php foreach($_SESSION['printing_set'] as $data) { ?> 
    <?php foreach(getProvenaMailableUserlist() as $userlist){ ?> 
    <input type="hidden" name="reference[<?php echo $data['user_id'] ?>]" value="<? if($userlist['user_id'] == $data['user_id']){echo $userlist['ref'];} ?>" />  
    <?php } ?> 
<?php } ?> 

什麼是正確的方法來做到這一點?

+0

你是什麼意思的「死鎖」呢?另外,如果你沒有打開短標籤,你的''php'裏面的價值引用缺少一個'php' – helloandre

+0

這是甚至正確的語法?我不認爲你可以在這樣的循環中拋出HTML。 – Chriszuma

回答

0

你有一些時髦的格式正在進行,所以很難判斷錯誤可能在哪裏。試着這樣說:。

<?php 
foreach($_SESSION['printing_set'] as $data) { 
    foreach(getProvenaMailableUserlist() as $userlist){ 
     $value = ""; 
     if($userlist['user_id'] == $data['user_id']) 
      $value = $userlist['ref']; 
     echo "<input type='hidden' name='reference$user_id' value='$value' /> \n"; 
    } 
} 
?> 
1

什麼,你正在做的是一次重新打印的一部分「<輸入類型=‘隱藏’的名字=」 ...」這裏是你應該做的

<?php 
    echo '<input type="hidden" name="reference[' . $data['user_id'] . ']" value="'; //olny one time. 
    foreach($_SESSION['printing_set'] as $data) { 
    foreach(getProvenaMailableUserlist() as $userlist){ 
     if($userlist['user_id'] == $data['user_id']){ 
      echo $userlist['ref']; //only if condition is true 
     } 

    } 
    } 
    echo '" />'; //only one time 
?>