[英]Use of array_rand function with multidimensional array
在這個帖子中,Pudge601非常善於為我的問題提供解決方案: Php / MySQL隨機數據(音高)序列
通過將靜態值替換為隨機值,我弄清楚while循環是如何工作的。 但是,我仍然試圖理解這一行:
$dist = $dists[$index][array_rand($dists[$index])];
當我替換時我能理解它(例如)
$dist = $dists[$index][0]
它從一個嵌套數組中檢索第一個數組值。 但是,我不知道這部分是怎么回事:
[array_rand($dists[$index])];
產生一個所需的值。
它似乎與這里的描述不對應: http : //php.net/manual/en/function.array-rand.php在此上下文中使用多維數組時,語法可能不同? 無論如何,我只是沒有得到它。 如果有人可以幫我翻譯成“英語”,我會感激不盡!
代碼應該被理解為:
$arr = $dists[$index]; // select array from $dists element at index $index
$key = array_rand($arr); // get key of a random element
$dist = $arr[$key]; // get element value
從文檔 :
如果只選擇一個條目,
array_rand()
將返回隨機條目的鍵。
后來在這個討論中解決了同樣的問題: http : //www.codingforums.com/showthread.php? t = 296450
答案: $dist = $dists[$index][array_rand($dists[$index])];
,第一次使用$dists[$index]
將結果本地化為第一個嵌套數組之一,第二個使用確保它是array_rand函數從中拾取的相同數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.