如何在php中比较2D数组中的元素

时间:2014-04-24 05:53:33

标签: php arrays

嗨,我有这样的阵列...

array(
   array(
      1, 3
   ),
   array(
      4, 6, 8
   ),
   array(
      2, 3, 5, 1
   )
)

现在我想将第一个元素与第二行中的所有元素进行比较。我想要将1与4,6和8进行比较。然后使用第3行元素,例如1,2,3,5和1.Likewise i想要比较

1在给定的数组中总共存在两次....所以变量count1 = 2 ....同样3存在2次所以count2 = 2 ... 8只存在一次所以count8 = 1 ....像这样......

请帮我解决这个问题。谢谢。

2 个答案:

答案 0 :(得分:2)

如果您只是在频率表之后,可以使用array_merge()对其进行展平,并使用array_count_values()来计算:

print_r(array_count_values(call_user_func_array('array_merge', $array)));

输出:

Array
(
    [1] => 2
    [3] => 2
    [4] => 1
    [6] => 1
    [8] => 1
    [2] => 1
    [5] => 1
)

答案 1 :(得分:0)

检查This answer

或示例

function in_array_r($needle, $haystack, $strict = false) {
    foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
            return true;
        }
    }

    return false;
}

使用

$b = array(array("Mac", "NT"), array("Irix", "Linux"));
echo in_array_r("Irix", $b) ? 'found' : 'not found';