我已經有很多關於使用其他語言的這個問題的答案,但我想用PHP語言的答案。任何一個可以幫助我,請 這是我的數組看起來像找到使用php出現一次的數組中的元素
$array = [1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11];
我已經有很多關於使用其他語言的這個問題的答案,但我想用PHP語言的答案。任何一個可以幫助我,請 這是我的數組看起來像找到使用php出現一次的數組中的元素
$array = [1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11];
使用array_count_values()象下面這樣: -
<?php
$array = [1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11];
$array_count_values = array_count_values($array);// get how many times a value appreas inside array
foreach($array_count_values as $key=>$val){ // now iterate over this newly created array
if($val ==1){ // if count is 1
echo $key. " in array come only one time.\n"; // this means value appears only one time inside array
}
}
輸出: - https://eval.in/867433或https://eval.in/867434
如果你想在一個值陣列: -
<?php
$array = [1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11,13]; // increased one value to show you the output
$array_count_values = array_count_values($array);
$single_time_comming_values_array = [];
foreach($array_count_values as $key=>$val){
if($val ==1){
$single_time_comming_values_array[] = $key;
}
}
print_r($single_time_comming_values_array);
輸出: - https://eval.in/867515
在這裏,你可以使用像這 -
<?php
function appearedOnce($arr)
{
$result = 0;
for($i=0; $i<sizeof($arr); $i++)
{
$result = $result^$arr[$i];
}
return $result;
}
$num = array(1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11);
print_r(appearedOnce($num)."\n")
?>
你有一個聰明的解決方案,它也很快!我在https://3v4l.org/IRfV7#output上運行了你的代碼。如果您要添加關於代碼如何工作的簡要說明,則會改進您的答案。 – slevy1
我最初的反應是採取更行人的做法,可以作爲您可以從這個example注意。然後我偶然發現了一個相關的discussion。
另一種方法涉及對數組進行排序,然後檢查重複對的數字對。下面的代碼是OP的陣列與我的邁克爾·馬丁到PHP的大概C源代碼的翻譯耦合的結果,具體如下:
<?php
$arr = [1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11];
sort($arr);
for($i = 0, $max = count($arr); $i < $max; $i++){
// is single number last element in array?
if($i == count($arr)-1)
$singleNum = $arr[$i];
// If adjacent elements the same, skip
if($i < count($arr)-1 && $arr[$i] == $arr[$i+1]){
$i++;
}
else
{
// found single number.
$singleNum = $arr[$i];
}
}
var_dump($singleNum);
的可能重複:https://開頭計算器.com/questions/11340450/select-only-unique-array-values-from-this-array –
不是太寬泛,是一個合法的編程問題。以下是一篇認真考慮它的文章:http://www.codinghelmet.com/?path=exercises/number-appearing-once-in-array。另外,我在SO上發現了一個相關的討論:https://stackoverflow.com/questions/2644179/find-the-only-unpaired-element-in-the-array – slevy1