2012-10-16 71 views
0

我对PHP编程非常陌生,而且我感到沮丧,因为我认为这应该起作用,但它不起作用。我真的失去了一些东西......比较来自不同数组的两个变量在foreach中

<?php 
foreach ($datas as $name) 
    { 
     if ($name['state'] === 'MA') 
     { 
     echo 
      '<input type="hidden" name="id" value="' . $name['id'] .  '" />' . 
      '<h2>' . htmlentities($name['name']) . '</h2>' . 
      '<p>' . 
      htmlentities($name['description']) . ' ' . 

...

'<h1>' . $name['id'] . '</h1>'; 

    foreach ($commentdatas as $name2) 
    { 
    if ($name['id'] == $name2['parkid']) 
     { 
      echo $name['id'] . $name2['parkid']; 
     }  
     } 
} 
} 
?> 
</div> 

一切工作顺利,直到我到了第二foreach语句。 foreach works。当我测试时,$name['id']正确回声,正如$name2['parkid']

即使在循环中,系统似乎也没有正确识别这些问题。 But inside the if statement, nothing echos at all.

很明显if语句有问题。我已经找到了我能找到的任何地方,而且我很难找出比较这些变量的正确方法。谁能帮忙?

+0

哪里commentdatas是从哪里来的?它是$数据的孩子吗? – jose

+2

你能粘贴var_dump($ name ['id'])和$ name2 ['parkid']吗? – GBD

+0

Commentdatas是一个不同的数组。 – user1483042

回答

1

尝试in_array()功能

foreach ($commentdatas as $name2) { 

    if ($name['id'] == $name2['parkid']) 
     { 
      echo $name['id'] . $name2['parkid']; 
     }  
     } 
} 

更换

if(in_array($name['id'],$commentdatas)){ 

     echo $name['id'] . $name2['parkid'];  

} 
+0

我去了你提供的链接,试图弄清楚这一点,我只是很新,并且自己学习它,这是没有意义的。你能给出一个简单的英文解释,说明它做了什么,以便我可以做更多的研究。 – user1483042

+0

我做了更多的阅读,并得到它,但我试图比较的两个变量是在两个不同的数组中。我有foreach(第一个数组)做的东西...然后第二个foreach(第二个数组)如果第一个数组中的特定变量匹配第二个数组中的特定变量,然后做东西。 – user1483042

+1

尝试更新回答它可能是工作 – softsdev