2016-12-20 2 views
0

я есть х, у координаты данные, которые я пытаюсь сортировать по приоритету оси, я пытался сортировки данных с array_multisort() функция, однако я заметил, что только целевой один столбецPHP 2d массив сортировки по приоритету колонке

ху выборочные данные массив

$xy_dat_ray = array(
    array('x' => 111.0, 'y' => 17.83), 
    array('x' => 25.83, 'y' => 10.37), 
    array('x' => 37.85,'y' => 13.57), 
    array('x' => 17.13, 'y' => 41.33), 
    array('x' => 13.64, 'y' => 16.35), 
    array('x' => 99.16, 'y' => 34.74), 
    array('x' => 12.495, 'y' => 66.855) 
); 

, если я использую array_multisort как

array_multisort(array_column($xydata, 'x'),array_column($xydata, 'y'), $xydata); 
print_r(array_shift($xydata)); 

подводят

[x] => 13.495 
[y] => 66.855 

однако я хочу быть строгим с у колонны, как минимальные значения Y являются (10.37,13.57,16.35,17.83), поэтому я хочу, чтобы я получить

'х' => 13,64, «у» => 16,35

, потому что в случае, если у = 10,37 х 25, который не является минимальным есть низкие значения х, при у = 13,57 х 37,85, которая является высокой, однако в случай 16.35 x равен 13.64, что нормально, потому что значения min Y, подобные (10.37, 13.57), имели большую величину x поэтому любая идея, как решить эту проблему в PHP

пример кода :: CODE DEMO

ответ

0

ОК решение было просто :)

просто подытожить х и у значения и загружать их в другой массив скажем $ sum_ray;

затем найти минимальное значение в массиве суммы по индексу, как

$min_val_index = array_keys($sum_ray, min($sum_ray)); 

, то вы получили, что мин х и у мин точную пару ... как

print_r($xy_dat_ray($min_val_index[0])); 
Смежные вопросы