Php 在我的例子中,如何比较两个数组

Php 在我的例子中,如何比较两个数组,php,arrays,Php,Arrays,我试图比较数组和值 我有点像 $values = array(1,5,9); $array = array(1,3,5,7,9); 我想知道1,5,9是否在$array 所以我做了 foreach($values as $value) { if(in_array($value, $array)){ echo "found"; }else{ //i also need get 3 and 7 from `$array` because they are

我试图比较数组和值

我有点像

$values = array(1,5,9);
$array = array(1,3,5,7,9);
我想知道1,5,9是否在
$array

所以我做了

foreach($values as $value) {
    if(in_array($value, $array)){
       echo "found";
    }else{
       //i also need get 3 and 7 from `$array` because they are not in values array
       //How do I do this?
    }
}

但是,我还需要从
$array
中获取3和7,因为它们不在值数组中。有办法做到这一点吗?谢谢。

在那种情况下你做不到,但是,你考虑过这样的事情吗:

$values = array(1,5,9);
$array = array(1,3,5,7,9);

foreach($values as $value) {
    if(in_array($value, $array)){
       echo "found";
    }
}

//check numbers that are not in array
$diff = array_diff($array, $values);
print_r($diff);

也许在目标阵列中搜索

foreach($array as $value) {
    if(in_array($value, $values)){
       echo "found: ".$value;
    }else{
       echo "not found: ".$value;
    }
}

只需将它们存储在新阵列中:

$valuesNotInArray = array();

foreach($values as $value) {
if(in_array($value, $array)){
   echo "found";
}else{
   //i also need get 3 and 7 from `$array` because they are not in values array
   //How do I do this?
   array_push($valuesNotInArray, $value);
}
然后对$valuesNotInArray中的元素执行任何操作

或者把它们重复出来:

foreach($values as $value) {
if(in_array($value, $array)){
   echo "found";
}else{
   //i also need get 3 and 7 from `$array` because they are not in values array
   //How do I do this?
   echo $value;
}

array_diff()
是此函数的内置函数。你是说像?MarkBaker我们需要一个“通用数组操作”的参考问题。我找不到任何好的复制品。他们只会在你的答案的值数组中循环,它不会推送他不在$values数组中的$array值。你需要像阿纳尔多在他的回答中所做的那样,颠倒前因后果。