2012-03-09 106 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

您必须先对它进行排序。当你提供了一个键 - 你已经完成了,它的数字或字符串不会被排序。

您可能需要对其进行排序或自己浏览数组。

相关问题