2011-09-23 37 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 
?>