获取具有不同数组的字段的最低值
Getting the lowest value of fields with different arrays
我在 PHP 中借助 Google 距离矩阵 API 创建了以下数组。
现在我需要比较[distance
]字段,获取最小值并将数组的键保存在变量中。我该怎么做呢?
我查看了 min()
但这似乎不适用于多个数组。
Array
(
[utrecht_cs] => Array
(
[name] => utrecht_cs
[address] => 3511 AX Utrecht, Netherlands
[distance] => 95
)
[groningen_cs] => Array
(
[name] => groningen_cs
[address] => 9726 AC Groningen, Netherlands
[distance] => 102.47
)
[zwolle_cs] => Array
(
[name] => zwolle_cs
[address] => 8011 CW Zwolle, Netherlands
[distance] => 2.54
)
)
您想使用 usort
对您的多维数组进行排序。
http://php.net/manual/en/function.usort.php
function sortNumbers($a, $b)
{
return $a['distance'] <=> $b['distance'];
}
usort($yourArray,'sortNumbers');
阅读此内容了解更多信息https://delboy1978uk.wordpress.com/2012/09/19/sorting-multidimensional-arrays-using-php/
你可以使用 uasort()
to sort your array. Then, you could get the first key using key()
.
$array = array(
'utrecht_cs' => array(
'name' => 'utrecht_cs',
'address' => '3511 AX Utrecht, Netherlands',
'distance' => 95
),
'groningen_cs' => array(
'name' => 'groningen_cs',
'address' => '9726 AC Groningen, Netherlands',
'distance' => '102.47'
),
'zwolle_cs' => array(
'name' => 'zwolle_cs',
'address' => '8011 CW Zwolle, Netherlands',
'distance' => '2.54'
)
);
uasort($array, function($a, $b) { return $a['distance'] <=> $b['distance']; });
$first_key = key($array);
输出:
zwolle_cs
你也可以使用(7.0之前的PHP版本):
uasort($array, function($a, $b) {
return $a['distance'] < $b['distance'] ? -1 : 1;
});
另一种排序方式。从数组中提取 distance
列并对其进行排序,根据以下内容对原始数组进行排序:
array_multisort(array_column($array, 'distance'), $array);
$result = key($array);
我在 PHP 中借助 Google 距离矩阵 API 创建了以下数组。
现在我需要比较[distance
]字段,获取最小值并将数组的键保存在变量中。我该怎么做呢?
我查看了 min()
但这似乎不适用于多个数组。
Array
(
[utrecht_cs] => Array
(
[name] => utrecht_cs
[address] => 3511 AX Utrecht, Netherlands
[distance] => 95
)
[groningen_cs] => Array
(
[name] => groningen_cs
[address] => 9726 AC Groningen, Netherlands
[distance] => 102.47
)
[zwolle_cs] => Array
(
[name] => zwolle_cs
[address] => 8011 CW Zwolle, Netherlands
[distance] => 2.54
)
)
您想使用 usort
对您的多维数组进行排序。
http://php.net/manual/en/function.usort.php
function sortNumbers($a, $b)
{
return $a['distance'] <=> $b['distance'];
}
usort($yourArray,'sortNumbers');
阅读此内容了解更多信息https://delboy1978uk.wordpress.com/2012/09/19/sorting-multidimensional-arrays-using-php/
你可以使用 uasort()
to sort your array. Then, you could get the first key using key()
.
$array = array(
'utrecht_cs' => array(
'name' => 'utrecht_cs',
'address' => '3511 AX Utrecht, Netherlands',
'distance' => 95
),
'groningen_cs' => array(
'name' => 'groningen_cs',
'address' => '9726 AC Groningen, Netherlands',
'distance' => '102.47'
),
'zwolle_cs' => array(
'name' => 'zwolle_cs',
'address' => '8011 CW Zwolle, Netherlands',
'distance' => '2.54'
)
);
uasort($array, function($a, $b) { return $a['distance'] <=> $b['distance']; });
$first_key = key($array);
输出:
zwolle_cs
你也可以使用(7.0之前的PHP版本):
uasort($array, function($a, $b) {
return $a['distance'] < $b['distance'] ? -1 : 1;
});
另一种排序方式。从数组中提取 distance
列并对其进行排序,根据以下内容对原始数组进行排序:
array_multisort(array_column($array, 'distance'), $array);
$result = key($array);