2012-10-16 70 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