PHP-比较和提取常见的数组元素 [英] php - comparing and extracting common array elements

查看:62
本文介绍了PHP-比较和提取常见的数组元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试比较多维数组中内部数组的值,并将这些公共值提取到另一个数组中.我已经尝试过将 array_intersect foreach 循环一起使用,但这没有给我结果,这里的内部数组数量是动态的,并且是由其他函数生成的.在比较多维数组的数组元素之前,有人尝试过吗?

I have been trying to compare values of inner arrays from a multidimensional array and extract those common values into another array. I have tried using array_intersect along with a foreach loop but this is not giving me result, here the number of inner arrays is dynamic and generated from a different function. Have anyone tried before comparing array elements of a multidimensional array?

我的阵列:

    $days_filter = array(
    [0] => array(
        '00:00',
        '01:30',
        '02:30',
    ),
    [1] => array(
        '00:00',
        '01:30',
        '03:30',
    ),
    [2] => array(
        '00:30',
        '01:30',
        '02:30',
    ),
    [3] => array(
        '00:30',
        '01:30',
        '04:30',
    ),
);

$res_arr = $days_filter[0];
foreach ($days_filter as $filter) {
    $res_arr = array_intersect($res_arr, $filter);
}

预期的输出数组:

$res_arr = array(
    [0]=>'01:30'
)

因为 01:30 是所有内部数组的公共元素.

because 01:30 is the common element of all inner arrays.

推荐答案

array_intersect()为您工作..

$days_filter = array(
    0 => array(
        '00:00',
        '01:30',
        '02:30',
    ),
    1 => array(
        '00:00',
        '01:30',
        '03:30',
    ),
    2 => array(
        '00:30',
        '01:30',
        '02:30',
    ),
    3 => array(
        '00:30',
        '01:30',
        '04:30',
    ),
);
$first = $days_filter[0];

for($i=1; $i<count($days_filter); $i++)
{
  $result = array_intersect($first, $days_filter[$i]);
  $first = $result;
}

print_r($result);

这会给你:

Array
(
    [1] => 01:30
)

这篇关于PHP-比较和提取常见的数组元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆