2014-12-06 3 views
0

나는 처음으로 PHP 응용 프로그램을 만들었고 나는 최종 장애물에 깜짝 놀랐다.foreach를 루프 내부 함수로 정렬

결과가 반복되어 PHP에서 foreach 루프 내부에서 함수 결과를 정렬해야합니다.

누구든지 내가 어떻게 할 수 있는지에 대한 통찰력을 가지고 있다면 대단히 감사하겠습니다!

foreach($data as $d) { 
echo $d["StudioName"]; // This will output "This is a test!" 

echo distance($lat, $lng, $d['StudioLat'], $d['StudioLong']);} 

기본적으로 "거리"함수 결과로 정렬해야합니다.

$sqlSelect = "SELECT * FROM studios WHERE StudioLat BETWEEN $minlat AND $maxlat AND StudioLong BETWEEN $minlng AND $maxlng"; // Basic SQL SELECT Statment 

$data = $dataBase->getQuery($sqlSelect); // This will run the SQL statment and return and associative array. 
+1

각 값에 대한 배열에'distance ($ lat, $ lng, $ d [ 'StudioLat']);를 저장할 수 있으며 그 배열을 정렬 할 수 있습니다. – Bijan

+0

' $ data' 배열 이전에 이것? 아니면 어딘가에서 그것을 받고? 건물 인 경우 해당 코드를 보여주십시오. – AbraCadaver

+0

$ 데이터를 표시하도록 코드를 편집했습니다. –

답변

0

정렬 usort and a callback를 사용하여 배열 : 그 후

usort($data, function($a, $b) use ($lat, $lng) { 
    $da = distance($lat, $lng, $a['StudioLat'], $a['StudioLong']); 
    $db = distance($lat, $lng, $b['StudioLat'], $b['StudioLong']); 
    return $da - $db; 
}); 

, 배열 및 출력 해당 항목을 통해 당신이 할 수있는 루프, 당신이 그랬던 것처럼.