2013-10-28 17 views
0

中的array_diff_uassoc函數的一點解釋對不起,有另一個noob問題,但...有人請向我解釋myfunction函數實際上在做什麼。我知道它正在檢查變量$ a和$ b是否相同,並且如果它們相同但是下一個返回令人困惑,則返回0。我看到他們使用三元運算符。關於php

function myfunction($a,$b) 
{ 
if ($a===$b) 
    { 
    return 0; 
    } 
    return ($a>$b)?1:-1; 
} 

$a1=array("a"=>"red","b"=>"green","c"=>"blue"); 
$a2=array("a"=>"red","b"=>"green","d"=>"blue"); 
$a3=array("e"=>"yellow","a"=>"red","d"=>"blue"); 

$result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); 
print_r($result); 

的回報的print_r

Array ([c] => blue) 

但我們是如何來到這裏...

+3

RTFM隊友:http://php.net/manual/en/function.array-diff-uassoc.php - 它在那裏。 –

+0

謝謝,我會看看和審查。我猜我唯一感到困惑的部分是回報($ a> $ b)? 1:-1; –

+0

尋找三元運算符來找出這是什麼(條件)? a:b;'事:http://en.wikipedia.org/wiki/%3F: –

回答

1

由於array_diff_uassoc的文件中表示,它返回從相比是唯一的第一個參數的條目其他論點。最後一個參數是它用於檢查項目是否唯一的函數的名稱。

所以,因爲只有$ a1包含'c'=>'blue'它被返回。

+0

「e」=>「黃色」也是獨一無二的。感謝您的解釋,也許您可​​以解釋$ a3。 –

+0

正如文檔中所述「返回包含array1中所有其他任何數組中不存在的條目的數組」。因此只返回第一個參數中唯一的條目。 – Harri

+0

awwee。很好,我不知道我是如何錯過的。謝謝。 –