<?php
/*** 从一个二维数组中取出 distance 最小的3个元素
*/
// 原数组
$arr = array(
array(
"id" => 1,
"distance" => 256
),
array(
"id" => 2,
"distance" => 546
),
array(
"id" => 3,
"distance" => 128
),
array(
"id" => 4,
"distance" => 56
),
array(
"id" => 5,
"distance" => 356
),
array(
"id" => 6,
"distance" => 466
),
array(
"id" => 7,
"distance" => 796
),
array(
"id" => 8,
"distance" => 664
)
);
// 装入临时数组
$cur = array();
foreach ($arr as $key => $value) {
$cur[$value['id']] = $value['distance'];
}
// 临时数组排序
sort($cur);
// 原数组排序、取值
$result = array();
foreach ($arr as $key => $value) {
switch ($value['distance']) {
case $cur[0]:
$result[0] = $value;
break;
case $cur[1]:
$result[1] = $value;
break;
case $cur[2]:
$result[2] = $value;
break;
}
}
$arr = $result;
ksort($arr);
echo "<pre>";
var_export($arr);
echo "</pre>";