2012-07-26 84 views
1

我有此数组:找到数组中的最小值而不循环? (PHP)

$myArray = array("0x40x40" => 64, "0x50x40" => 65, "0x60x40" => 66); 

现在我想找到smalles值,在此情况下,其64(第一密钥/值对)。有没有其他的方法循环数组,并比较值?最小的值并不总是第一个值,并且值不按顺序排序。

谢谢!

回答

4

您可以使用min()函数很好地得到您的答案。

echo min(2, 3, 1, 6, 7); // 1

$myArray=array(2, 3, 1, 6, 7); 
echo min($myArray); // 1 
+0

不错,学到了新东西! – user1540714 2012-07-26 09:44:08

+0

@ user1540714嘘,不要告诉任何人,但是我也是这样。我以前没有用过,并且快速的Google让我回答了这个问题:) – Fluffeh 2012-07-26 09:57:31

+0

@ user1540714但是当然''min()'循环了数组。算法上,除非数组具有已知结构(按升序/降序排序,或者在第一部分降序,第二部分升序...),否则没有什么比这更好的了。 – 2012-07-26 11:45:51

2

使用分钟:

$myArray = array(
    "0x40x40" => 64, "0x50x40" => 65, "0x60x40" => 66, "0x70x40" => 67, "0x80x40" => 68, "0x90x40" => 70, "0x100x40" => 71, "0x110x40" => 74, "0x120x40" => 76); 

echo min($myArray); 

http://codepad.org/NXhfZpBm

1

使用下面的语句在你的代码和你做。

min($myArray); 
0

将返回#阵列( '0x40x40')

$myArray = array(
     "0x40x40" => 64, 
     "0x50x40" => 65, 
     "0x60x40" => 66, 
     ); 
    array_keys($myArray, min($myArray)); 
0

如果你只需要最低或最高值

$myArray = array("0x40x40" => 64, "0x50x40" => 65, "0x60x40" => 66); 
asort ($myArray); 
$item = current($myArray); 

这是最低到最高,在倒U会需要arsort()函数

相关问题