获取具有最小标记 php 的行
Get row with minimum mark php
我有一个 php 数组,如下所示,
$array = array(
array(
'mark' => 10,
'name' => 'name 1',
),
array(
'mark' => 15,
'name' => 'name 2',
),
-------------------
-----------------
);
我需要得到标记最小的行。
我可以得到最低分,如下所示,
$numbers = array_map(function($array) {
return $details['mark'];
}, $array);
$min = min($numbers);
但我不知道如何获取整行。
既然 PHP 已经有了您需要的东西,为什么还要使用这么长的代码?
使用这个单线。
紧凑(短)、快速(因为我们首先收集了列)、原生(它是内置的):
$marks = array_column($array, 'mark'); // return "mark"s as array keeping keys of $array
$minimal_mark = min($marks); // gets minimal value
$minimal_mark_key = array_search($minimal_mark, marks); // searches for $minimal_mark value in $marks and returns array key
$minimal_mark_row = $array[$minimal_mark_key]; // gets element from array by key
uasort($array, function($a, $b) {
if ($a['mark'] == $b['mark']) {
return 0;
}
return ($a['mark'] < $b['mark']) ? -1 : 1;
});
$min = current($array);
$max = end($array);
试试这个:
$array = array(
array(
'mark' => 10,
'name' => 'name 1',
),
array(
'mark' => 15,
'name' => 'name 2',
)
);
$numbers = array_map(function($array) {
return $array['mark'];
}, $array);
$min = min($numbers);
我有一个 php 数组,如下所示,
$array = array(
array(
'mark' => 10,
'name' => 'name 1',
),
array(
'mark' => 15,
'name' => 'name 2',
),
-------------------
-----------------
);
我需要得到标记最小的行。
我可以得到最低分,如下所示,
$numbers = array_map(function($array) {
return $details['mark'];
}, $array);
$min = min($numbers);
但我不知道如何获取整行。
既然 PHP 已经有了您需要的东西,为什么还要使用这么长的代码?
使用这个单线。
紧凑(短)、快速(因为我们首先收集了列)、原生(它是内置的):
$marks = array_column($array, 'mark'); // return "mark"s as array keeping keys of $array
$minimal_mark = min($marks); // gets minimal value
$minimal_mark_key = array_search($minimal_mark, marks); // searches for $minimal_mark value in $marks and returns array key
$minimal_mark_row = $array[$minimal_mark_key]; // gets element from array by key
uasort($array, function($a, $b) {
if ($a['mark'] == $b['mark']) {
return 0;
}
return ($a['mark'] < $b['mark']) ? -1 : 1;
});
$min = current($array);
$max = end($array);
试试这个:
$array = array(
array(
'mark' => 10,
'name' => 'name 1',
),
array(
'mark' => 15,
'name' => 'name 2',
)
);
$numbers = array_map(function($array) {
return $array['mark'];
}, $array);
$min = min($numbers);