0

我的两个数组值是

1)

Array (
               [0] => School Children 
               [1] => Vocational Training Centre
               [2] => Admission Fee
          ) 

2) 入场费

Array (
              [0] => School Children
              [1] => World Ten K
              [2] => Vocational Training Centre
              [3] => Van travel
              [4] => Admission Fee
        ) 

在这里,它们的键不同,如果两者都在计算,则仅选中我的复选框,否则不会选中它们。

我尝试过使用array_search但没有用,还有一些情况in_array

$main对于所有值,并且$temp_imp是来自数据库的值

<?php 
    $i=0;

    foreach($prj_data as $prj_pop){
        $main[]=$prj_pop->name;
?>
    <br/><br/>
    <input type="checkbox" class="checkbox_project" value="<?php echo  $prj_pop->name;?>"
<?php 
        if (array_intersect($temp_imp, $main))
        {
            echo 'checked="true"';
        } 
?>
<?php
        echo $prj_pop->name;
        $i++;
    }
?>
4

5 回答 5

0

哦,我想我终于明白你的要求了!你想做这样的事情:

<?php
foreach($array1 as $a){
    if( in_array($a, $array2))){
        //Value in both

    }
    else{
        //Value only in 1st array   
    }
}
?>
于 2013-06-15T10:43:41.227 回答
0

这是一个简单的函数,用于查看一个数组的值是否与另一个数组的值匹配。在这种情况下,TRUE如果所有$array1值都存在于 中$array2,或者FALSE它从中找到一个$array1不在 中的值,则返回$array2

function array_match($array1, $array2) {
  foreach ($array1 as $value) {
    if (!in_array($value, $array2)) {
      return FALSE;
    }
  }
  return TRUE;
}
于 2013-06-15T10:44:13.823 回答
0

最简单的方法是使用 array_intersect php 函数并检查结果: http: //php.net/manual/en/function.array-intersect.php

于 2013-06-15T11:02:47.843 回答
0

如果你想检查是否相等,试试这个:

$array1 = array(
    'School Children',
    'Vocational Training Centre',
    'Admission Fee'
);

$array2 = array(
    'School Children',
    'World Ten K',
    'Vocational Training Centre',
    'Van travel',
    'Admission Fee'
);

sort($array1);
sort($array2);

if (md5(serialize($array1)) === md5(serialize($array2))) {
    echo 'equal';
}
else {
    echo 'not equal';
}
于 2013-06-15T10:45:17.617 回答
0

猜测您想要一个包含给定数组中的值的数组,您可以使用array_intersect(),因为该数组“没有键”,但只有值。

于 2013-06-15T10:45:21.960 回答