/**
* 对二维数组进行排序
* 模拟 数据表记录按字段排序
*
* <code>
* @list_order($list, $get['orderKey'], $get['orderType']);
* </code>
* @param array $array 要排序的数组
* @param string $orderKey 排序关键字/字段
* @param string $orderType 排序方式,'asc':升序,'desc':降序
* @param string $orderValueType 排序字段值类型,'number':数字,'string':字符串
*/
function list_order(&$array, $orderKey, $orderType = 'asc', $orderValueType = 'string') {
if (is_array($array)) {
$orderArr = array();
foreach ($array as $val) {
$orderArr[] = $val[$orderKey];
}
$orderType = ($orderType == 'asc') ? SORT_ASC : SORT_DESC;
$orderValueType = ($orderValueType == 'string') ? SORT_STRING : SORT_NUMERIC;
array_multisort($orderArr, $orderType, $orderValueType, $array);
}
}
/**
* 求两个已知经纬度之间的距离,单位为米
*
* @param lng1 $ ,lng2 经度
* @param lat1 $ ,lat2 纬度
* @return float 距离,单位米
* @author
*/
function getdistance($lng1, $lat1, $lng2, $lat2) {
// 将角度转为狐度
$radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
$radLat2 = deg2rad($lat2);
$radLng1 = deg2rad($lng1);
$radLng2 = deg2rad($lng2);
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
return ceil($s);
}
* 对二维数组进行排序
* 模拟 数据表记录按字段排序
*
* <code>
* @list_order($list, $get['orderKey'], $get['orderType']);
* </code>
* @param array $array 要排序的数组
* @param string $orderKey 排序关键字/字段
* @param string $orderType 排序方式,'asc':升序,'desc':降序
* @param string $orderValueType 排序字段值类型,'number':数字,'string':字符串
*/
function list_order(&$array, $orderKey, $orderType = 'asc', $orderValueType = 'string') {
if (is_array($array)) {
$orderArr = array();
foreach ($array as $val) {
$orderArr[] = $val[$orderKey];
}
$orderType = ($orderType == 'asc') ? SORT_ASC : SORT_DESC;
$orderValueType = ($orderValueType == 'string') ? SORT_STRING : SORT_NUMERIC;
array_multisort($orderArr, $orderType, $orderValueType, $array);
}
}
/**
* 求两个已知经纬度之间的距离,单位为米
*
* @param lng1 $ ,lng2 经度
* @param lat1 $ ,lat2 纬度
* @return float 距离,单位米
* @author
*/
function getdistance($lng1, $lat1, $lng2, $lat2) {
// 将角度转为狐度
$radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
$radLat2 = deg2rad($lat2);
$radLng1 = deg2rad($lng1);
$radLng2 = deg2rad($lng2);
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
return ceil($s);
}