Php 查找数组中数值最小的节点
我有以下数组输出:Php 查找数组中数值最小的节点,php,Php,我有以下数组输出: Array ( [0] => SimpleXMLElement Object ( [0] => 32.4 km ) [1] => SimpleXMLElement Object ( [0] => 10.2 km ) [2] => SimpleXMLElement Object ( [0] => 205 km ) [3] => SimpleXMLElement Object ( [0] => 50
Array (
[0] => SimpleXMLElement Object ( [0] => 32.4 km )
[1] => SimpleXMLElement Object ( [0] => 10.2 km )
[2] => SimpleXMLElement Object ( [0] => 205 km )
[3] => SimpleXMLElement Object ( [0] => 50.8 km )
)
我试图从一个特定的地址得到最短的距离,根据这个结果,最短的距离是10.2公里。如何比较所有公里距离,并仅显示数字最小的距离
我的主要目标是基于这个数组结果获得最短距离
$min_distance = $array[0][0];
foreach($array as $distance)
$min_distance = (filter_var($distance[0], FILTER_SANITIZE_NUMBER_FLOAT) < filter_var($min_distance, FILTER_SANITIZE_NUMBER_INT)) ? $distance[0] : $min_distance;
echo $min_distance;
因为我不知道数组叫什么,所以我使用了$array。我希望这对你有帮助
关于我使用的方法的一点解释
foreach遍历数组的每个元素。当前节点将在as后安全保存在变量中
filter\u var$var,filter\u SANITIZE\u NUMBER\u FLOAT正在用字符串生成一个数字,而不是完全用数字生成。表示23.5公里转换为23.5公里
布尔值?value1:value2只是一个简短的if语句。如果布尔值为true,则表达式eqauls value1,如果不是value2
我希望这有帮助
因为我不知道数组叫什么,所以我使用了$array。我希望这对你有帮助
关于我使用的方法的一点解释
foreach遍历数组的每个元素。当前节点将在as后安全保存在变量中
filter\u var$var,filter\u SANITIZE\u NUMBER\u FLOAT正在用字符串生成一个数字,而不是完全用数字生成。表示23.5公里转换为23.5公里
布尔值?value1:value2只是一个简短的if语句。如果布尔值为true,则表达式eqauls value1,如果不是value2
我希望这会有所帮助。如果您希望重新使用包含最低距离值的整个SimpleXMLElement,而不是仅打印距离,假设对象包含的数据多于距离,则可以根据需要调整此片段:
$lowest_item = NULL;
$lowest_value = NULL;
// iterate over all SimpleXMLElements as a reference for later re-use
foreach ($array as &$item) {
// extract number from string -- adjust $item[0] to the real object property
$numeric_value = floatval($item[0]);
// check if current item is lower than one of the previous
if ($lowest_value == NULL || $lowest_value >= $numeric_value) {
$lowest_item = $item;
$lowest_value = $numeric_value;
}
}
var_dump($lowest_item);
如果要重复使用包含最小距离值的整个SimpleXMLElement,而不只是打印距离(假设对象包含的数据多于距离),可以根据需要调整此片段:
$lowest_item = NULL;
$lowest_value = NULL;
// iterate over all SimpleXMLElements as a reference for later re-use
foreach ($array as &$item) {
// extract number from string -- adjust $item[0] to the real object property
$numeric_value = floatval($item[0]);
// check if current item is lower than one of the previous
if ($lowest_value == NULL || $lowest_value >= $numeric_value) {
$lowest_item = $item;
$lowest_value = $numeric_value;
}
}
var_dump($lowest_item);
使用和从数组中提取数值,然后使用查找数组中的最小值:
echo min(array_map('floatval', $array));
演示:使用和从数组中提取数值,然后使用查找数组中的最小值:
echo min(array_map('floatval', $array));
演示:请看。试着自己写一些东西,当它不起作用时,带到我们这里来帮助你。你开始,我们帮助。我们不是为你写的。向我们展示您尝试过的实际代码,然后我们可以从中帮助您。请看。试着自己写一些东西,当它不起作用时,把它带给我们帮助你。你开始,我们帮助。我们不是为你写的。向我们展示您尝试过的实际代码,然后我们可以从中帮助您。intval将从32.4公里缩短到32公里,这不是期望的结果。intval将从32.4公里缩短到32公里,这不是期望的结果。