$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
從上述陣列我需要單獨的值的狗。我怎麼能從數組中獲得唯一的值?有沒有在PHP的任何功能...如何從數組中獲得唯一值?
感謝 拉維
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
從上述陣列我需要單獨的值的狗。我怎麼能從數組中獲得唯一的值?有沒有在PHP的任何功能...如何從數組中獲得唯一值?
感謝 拉維
$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);
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
$result = array_unique(a);
print_r($result);
試試這個...
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)];
嘗試用:
$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;
}
1,因爲這是很好的,如果密鑰應予以保留。然而,當使用array_search時,運行時複雜度很糟糕,因爲它從O(n)到O(n^2)。 – 2011-06-09 09:44:06
好點。我編輯了我的答案,以獲得更高的效率。 – hsz 2011-06-09 09:48:39
使用下面的函數似乎是工作&得心應手。
<?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
由於其工作...... – 2011-06-09 11:33:46