2012-06-28 43 views
0

我正在從數據庫中的值作爲數組如何在php中比較相同的數組值?

<?php 
    foreach($this->getlist as $value){ 
     foreach($this->listOfdealers as $list){ 

?> 
<tr> 
    <td> 
     <input type="checkbox" name="list[]" value=<?php echo $list->nList?> 
      <?php if($value->nSubList==$list->nList){echo 'checked'; } ?> /> 
     <label for="list_32"><?php echo $list->nList?> 
     </label> 
    </td> 
</tr> 
<?php 
     } 
    } 
?> 

我只是想比較兩個數組值並顯示該複選框選中時,他們是平等的,但在這裏有顯示,而不是四個16複選框,因爲我我正在使用兩個for循環,我不希望那樣。

$這個 - >的GetList是從數據庫

+0

getList和listOfdealers代表什麼?哪一個應該與複選框的生成有關? –

+0

儘量將您的邏輯從演示中分離出來,使代碼更易於閱讀和管理:) – IEnumerable

+0

我們需要知道背後的邏輯 - > getList和 - > listOfdealears。巢foreach似乎並不一見,但我可能是錯的..只是給這些對象的一個​​樣本(print_r) – 2012-06-28 05:45:40

回答

1

使用

foreach (array_expression as $key => $value) 
    statement 

foreach-manual page

這樣你就可以使用相同的索引用於獲取值

<?php 
foreach($this->getlist as $index => $value) 
{ 
$list = $this->listOfdealers[$index]; 
?><tr> 
     <td> 
      <input type="checkbox" name="list[]" value=<?php 
       echo $list->nList ?> 
<?php if($value->nSubList==$list->nList){echo 'checked'; } ?> /> 
     <label for="list_32"><?php echo $list->nList?> 
     </label> 
     </td> 
</tr> 
<?php 
} 
?> 
0

請在下面找到你的問題的解決方案。 這是使用in_array和array_diff的示例代碼。您可以使用任一功能。

<?php 
$var1 = array("test","test1","test2"); 
$var2 = array("test","test1","test2","test3"); 
$var3 = array(); 

foreach($var1 as $i) 
{ 
    if(in_array($i,$var2)) 
    { 
     //save the value 
     array_push($var3,$i); 
    } 
    else 
    { 
     continue; 
    } 
} 
//var3 will contain the values that are common in two arrays 

//Another Method using array_diff 
$array1 = array("a" => "green", "red", "blue", "red"); 
$array2 = array("b" => "green", "yellow", "red"); 
$result = array_diff($array1, $array2); 

print_r($result); 

?>