php array_intersect 无法正常运行

Posted

技术标签:

【中文标题】php array_intersect 无法正常运行【英文标题】:php array_intersect not functioning correctly 【发布时间】:2014-03-19 10:16:08 【问题描述】:

我目前有 2 个数组,我想在其中比较日期。以下是我的数组的结构:

$bholidays = array('05-05-2014','26-05-2014');

$userdaysoff = array('23-05-2014','24-05-2014','25-05-2014', '26-05-2014');

目的是检测来自 $userdaysoff 的值是否存在于 $bholidays 数组中。

上面的效果很好,并且检测到两个数组中都存在 26-05-2014,但是如果 $userdaysoff 数组看起来像这样:

$userdaysoff = array('26-05-2014','27-05-2014','28-05-2014', '29-05-2014');

那么没有检测到重复的日期 26-05-2014。

有什么原因会发生这种情况吗?

这是我运行代码的方式:

$results = array_intersect($bholidays, $userdaysoff);
if($results)



foreach($results as $result)

echo 'yes';



 else 

echo 'no';  


【问题讨论】:

请谨慎运行您的代码。它运行良好。 是的,它确实可以正常工作... 你得到的输出是什么?? 如果我像我上面的例子那样构造数组,它可以工作,并且 $results 返回结果是yes,第二个例子返回no 检查我更新的答案。 【参考方案1】:

你不能简单地使用 in_array 吗?

$bholidays = array('05-05-2014','26-05-2014');
$userdaysoff = array('23-05-2014','24-05-2014','25-05-2014', '26-05-2014');

$count = count($userdaysoff);
for($i = 0; $i == $count; $i++) 
    if(in_array($userdaysoff[$i], $bholidays)) 
        echo $userdaysoff[$i] . " is in array.";
    
 

【讨论】:

【参考方案2】:
    $bholidays = array('05-05-2014','26-05-2014');
$userdaysoff = array('26-05-2014','27-05-2014','28-05-2014', '29-05-2014');

$results = array_intersect($bholidays, $userdaysoff);
if($results)

    foreach($results as $result)
    
        echo 'yes';
    

else

    echo 'no';

运行此代码并检查它是否正常工作..

输出是。

【讨论】:

这是我在问题中发布的确切代码? 怎么可能不呢?什么是php版本?

以上是关于php array_intersect 无法正常运行的主要内容,如果未能解决你的问题,请参考以下文章

php动态array_intersect

php中的array_intersect()具有特殊用途

PHP:正则表达式替代 array_intersect

php array_intersect() 效率

PHP使用array_intersect()函数求数组交集

Php array_intersect输出[重复]