2012-03-09 109 views
1

使用print_r返回以下陣列:如何獲得在PHP數組中最小的編號元素

Array ([5358] => red [1] => green [503] => blue) 

如何訪問最小編號的元素數組中,在這種情況下,「綠色」?

值會改變,但我只需要最小的值元素。

使用echo min($myArray);將返回「紅色」。我必須在這裏失去一些東西。使用usort或其他「高級」方法先進行排序,然後提取最大值不能是唯一的解決方案......正確!?!

謝謝。

回答

5

min()看起來值,而不是在鑰匙。 array_keys()將做詭計

echo min(array_keys($myArray)); 

將做的伎倆。爲了得到它的價值,嘗試

echo $myArray[min(array_keys($myArray))]; 
+0

啊...多好的解決方案!謝謝一堆!知道這個問題有一個簡單的「黑客」! – Matte 2012-03-09 20:02:09

+0

@Matte這不是一個黑客,只是處理數組。 – 2012-03-09 20:05:17

+0

我知道......因此「」。作爲PHP的新手,對我來說,一切似乎都是一種破綻:P – Matte 2012-03-09 20:06:53

2
min(array_keys($myArray)); 

簡單,有效

+0

OP需要最低密鑰的值,而不是最低密鑰本身的值。 – 2012-03-09 19:55:15

+0

@EvanMulawski從價值中走出來就是這麼一小步...... OP是不是真的不能自己想出來呢? – 2012-03-09 20:32:35

+0

你的答案,沒有解釋,沒有給OP他需要什麼。 – 2012-03-09 21:08:37

2
$min = $myArray[min(array_keys($myArray))]; 
+0

這是唯一正確的答案。 – 2012-03-09 19:54:57

+0

@Evan我不這麼認爲。我的答案有相同的解決方案 – 2012-03-09 19:55:56

+0

@Martin您添加到您的,並在第二個代碼段中有拼寫錯誤。 – 2012-03-09 20:02:07

0

您必須先對它進行排序。當你提供了一個鍵 - 你已經完成了,它的數字或字符串不會被排序。

您可能需要對其進行排序或自己瀏覽數組。

相關問題