2014-01-27 57 views
0

我發現了一些令我感到困惑的代碼。也許這是我的錯誤,或者我誤解了。我已經看到了一些這樣的代碼:php中的雙數組元素

function my_compare($a, $b) { 
    if ($a['practice_id']['practice_url'] == $b['practice_id']['practice-url']) 


return $a['practice_location_id']['practice-url'] - $b['practice_location_id']['practise_url']; 

    else 
return $a['practice_id']['practice_url'] - $b['practice_id']['practise_url']; 
} 

我只需要知道使用practice_url和practise_location_id和practice_url的。

這些都嵌入在html名稱或值?請幫我理解這些。

+2

您可能需要閱讀數組... http://uk3.php.net/manual/en/language.types.array.php – mic

+0

由於這是PHP代碼,它可能會或可能不相關到任何HTML代碼。您指示的項目是數組索引。正如其他人所建議的那樣,您需要查看陣列的基礎知識。 –

+0

你看到哪裏調用了my_compare()嗎?在代碼中查找_string_'my_compare',而不僅僅是一個函數調用。它似乎是一個自定義的比較函數,被設計爲被傳遞給'usort()'作爲它的排序回調函數。傳遞給'usort()'進行排序的原始數組具有多維結構,包括數組鍵'['practice_id'],['practice_location_id']'和'['practice_id'] ['practice_url']的子鍵。 ]' –

回答

0

這是一個「簡單的」多維PHP數組

在PHP中,陣列可以包含數字,字符串,對象,或其他陣列。

例如

$a = array('practice_id' => array('practice_url' => 2)); 
$b = array('practice_id' => array('practice_url' => 1)); 

echo $a['practice_id']['practice_url']; // display "2" 
0

此代碼需要陣列的兩個陣列。舉個例子:

$a = array(
    'practice_id' => array(
         'practice_url'=>'some url' 
        ), 
    'practice_location_id' => array(
         'practice-url'='some other url' 
    ) 
); 

當然沒有看到代碼的陣列可以什麼

$a是上面的數組。 $a['practice_id']引用$a中的數組,其中'practice_id'(作爲旁邊這是一個奇怪的命名密鑰,因爲它暗示我的條目是一個字符串或數字而不是數組)。同樣$a['practice_id']['practice_url']指的是some url的值。

該函數因此只是檢查數組的某些部分是否相等並基於此返回。即

return $a['practice_id']['practice_url'] - $b['practice_id']['practise_url']; 

請注意,以上是第二個奇怪的部分。 practice_url是一個數字,它有一個奇怪的命名鍵,或者它確實是一個url,並且返回值會在返回它們的差異之前嘗試轉換爲整數。