如何从阵列中获得独特的价值?

时间:2011-06-09 09:36:34

标签: php arrays

$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");

从上面的数组我需要单独的值狗。如何从数组中获取唯一值? php中是否有任何功能?...

由于 拉维

6 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

$a = array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
$counted = array_count_values($a);
$result = array();
foreach($counted as $key => $value) {
  if($value === 1) {
    $result[] = $key;
  }
}
//$result is now an array of only the unique values of $a
print_r($result);

答案 2 :(得分:1)

function getArrayItemByValue($search, $array) {
    // without any validation and cheking, plain and simple
    foreach($array as $key => $value) {
        if($search === $value) {
            return $key;
        }
    }

    return false;
}

然后尝试使用它:

echo $a[getArrayitembyValue('Dog', $a)];

答案 3 :(得分:1)

尝试:

$a = array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
$aFlip = array_flip($a);
$unique = array();

foreach ( array_count_values( $a ) as $key => $count ) {
    if ( $count > 1 ) continue;
    // $unique[ array_search($key) ] = $key;
    $unique[ $aFlip[$key] ] = $key;
}

答案 4 :(得分:1)

使用以下功能似乎正在起作用&方便。

<?php 
$array1 = array('foo', 'bar', 'xyzzy', 'xyzzy', 'xyzzy'); 

$dup = array_unique(array_diff_assoc($array1, array_unique($array1))); 

$result = array_diff($array1, $dup);

print_r($result);
?>

你可以看到它在这里工作 - http://codepad.org/Uu21y6jf

答案 5 :(得分:-1)

$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
$result = array_unique(a);
print_r($result);

尝试这个...