2015-01-01 35 views
1

我知道如何使用array_diff_key($x , array_unique($x));来检测PHP数组中的重复值。检测重复但忽略PHP数组上的值

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

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

我想检测4而不更改数组结构(数组长度仍然必须为7)。 这是可能的PHP?怎么做?

+0

'这是可能在PHP'是的,这是可能的PHP –

+0

如何做到这一点? – john

+1

1.阅读本网站的规则2.编写代码3.发布清除问题 –

回答

1

试试这个:

$y只有项目NOT NULL。

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

0

我可以做以下的自定义函数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)); 

结帐这个DEMO:http://codepad.org/W8ocL6dj