php数组 - in_array和/或array_intersect

时间:2010-09-04 07:31:18

标签: php arrays

这是厚厚的另一天 - 很抱歉。 :)无论如何,我有2个我想操纵的数组;如果第二个数组中存在第一个数组的值,则执行一项操作,然后使用第二个数组的剩余值执行其他操作。

e.g。

$array1 = array('1','2','3','4'); - the needle
$array2 = array('1','3','5','7'); - the haystack

if(in_array($array1,$array2): echo 'the needle'; else: echo'the haystack LESS the needle '; endif;

但由于某些原因,in_array对我不起作用。请帮助。

1 个答案:

答案 0 :(得分:3)

这样做:

<?php
$array1 = array('1','2','3','4');
$array2 = array('1','3','5','7');

//case 1:
print_r(array_intersect($array1, $array2));

//case 2:
print_r(array_diff($array2, $array1));
?>

这会输出数组的值(问题更改之前你想要的):

Array
(
    [0] => 1
    [2] => 3
)
Array
(
    [2] => 5
    [3] => 7
)

并且,如果您想使用if-else,请执行以下操作:

<?php
$array1 = array('1','2','3','4');
$array2 = array('1','3','5','7');

$intesect = array_intersect($array1, $array2);

if(count($intesect))
{
    echo 'the needle';
    print_r($intesect);
}
else
{
    echo'the haystack LESS the needle ';
    print_r(array_diff($array2, $array1));
}
?>

输出:

the needle
Array
(
    [0] => 1
    [2] => 3
)