检测重复项但忽略 PHP 数组中的值

detect duplicate but ignore a value on PHP array

我知道如何使用 array_diff_key( $x , array_unique( $x ) );.

检测 PHP 数组中的重复值

我的问题是我想检测 PHP 数组中的重复值,但忽略一个值或 NULL 值。例如:

$x = array (1,0,0,0,4,4,3);
$x = array (1,NULL,NULL,NULL,4,4,3);

我想在不改变数组结构的情况下检测4(数组长度必须还是7)。 这在 PHP 中可能吗?怎么做?

试试这个:

$y = array_filter($x,function($d){return $x!==null;});
$z = array_diff_key($y,array_unique($y));

$y 只有项目不为空。

$z 具有来自 $x 的不为空的重复项的键。

我可以执行以下自定义函数 detectArr:

<?php
$x = array (1,0,0,0,4,4,3);

    function detectArr($arr){
       $output = array();
       foreach ($arr as $i){
            if ($i){
                    $output[] = $i;
            }
            else{
                    $output[] = NULL;
            }        
       }
        return $output;
    }

    echo "<pre>";
    print_r(detectArr($x));

查看此演示:http://codepad.org/W8ocL6dj