2013-02-04 2 views
0

모두의 도움을 위해 미리 감사드립니다. 나는 위치 배열에서 가장 가까운 거리에 따라 소매를 정렬하고 싶은PHP 배열을 깊이 중첩 된 값으로 정렬하는 데 도움이 필요합니다.

[list] => Array (
    [0] => Array (
     [retailer] => ABC Store 
     [locations] => Array (
      [0] => Array (
       [distance] => 2.86 
      ) 
      [1] => Array (
       [distance] = 5.50 
      ) 
     ) 
    ) 

    [1] => Array (
     [retailer] => XYZ Store 
     [locations] => Array (
      [0] => Array (
       [distance] => 1.25 
      ) 
      [1] => Array (
       [distance] = 7.50 
      ) 
     ) 
    ) 
) 

:

나는 다음과 같은 다차원 배열을 가지고있다. 따라서 새로운 Array은 을 ABC Store 앞에 추가합니다.

나는 array_multisort을 사용해 보았지만 여러 레이어가 중첩 된 키에 대해 메인 배열을 정렬하는 데 문제가 있습니다.

답변

0
$list = array(
    array(
     "retailer" => "ABC Store", 
     "locations" => array(
      array(
       "distance" => 2.86 
      ) , 
      array(
       "distance" => 5.50 
      ) 
     ) 
    ) , 
    array(
     "retailer" => "XYZ Store", 
     "locations" => array(
      array(
       "distance" => 1.25 
      ) , 
      array(
       "distance" => 7.50 
      ) 
     ) 
    ) 
); 

foreach($list as $info) { 
    $storeinfo[$info["retailer"]] = $info; 
    foreach($info["locations"] as $location) { 
     $distances[] = $location["distance"]; 
    } 
    $stores[$info["retailer"]] = min($distances); 
} 

natsort($stores); 

foreach($stores as $store => $distance) { 
    $newlist[] = $storeinfo[$store]; 
} 

echo "<pre>"; 
print_r($newlist); 
echo "</pre>"; 
+0

@Rusty이 기능이 작동합니까? 아니면 도움이 더 필요하십니까? – Antony

관련 문제