【发布时间】:2014-09-18 19:43:56
【问题描述】:
如何获得多维数组中第二高的元素值。 我使用这个函数来获得最高值。但是我怎样才能找到第二高的。
function get_max($array)
{
$max = -999999999;
$found_item = null;
foreach ($array as $key => $value) {
if ($value['transaction_no'] > $max) {
$max = $value['transaction_no'];
$found_item = $value;
}
}
return $found_item;
}
例如,如果我调用get_max($transactions),我会得到数组编号 4,因为它在 transaction_no 中具有最高值:5。但是我怎样才能获得第二高呢?例如,当我调用get_second_max($transactions) 时,我应该得到数组编号 3,因为它在 transaction_no 中有 4。
$transactions = Array
(
[0] => Array
(
[transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
[transaction_no] => 1
[transaction_total_amount] => 589.00
[transaction_date] => 1335932419
[transaction_status] => cancelled
)
[1] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 2
[transaction_total_amount] => 79.00
[transaction_date] => 1336476696
[transaction_status] => cancelled
)
[2] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 3
[transaction_total_amount] => 299.00
[transaction_date] => 1336476739
[transaction_status] => cancelled
)
[3] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 4
[transaction_total_amount] => 79.00
[transaction_date] => 1336476927
[transaction_status] => cancelled
)
[4] => Array
(
[transaction_user_id] => 8e9050a3646c98342b9ba079fba80982
[transaction_no] => 5
[transaction_total_amount] => 129.00
[transaction_date] => 1336477032
[transaction_status] => cancelled
)
)
【问题讨论】:
-
按照交易号对数组进行排序,然后得到数组的第二个元素。
-
如果您从 SQL 查询中获取此项目 - 然后在使用
order by和limit的查询中找到结果