2016-12-20 58 views
0

我有一些x,y座標,其正嘗試通過軸優先排序數據,我試圖排序使用array_multisort(數據)函數然而,我注意到它僅定位一列PHP 2D陣列通過柱優先級排序

XY樣本數據陣列

$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列,例如最小Y值(10.37,13.57,16.35,17.83),所以我想,我得到

'×'=> 13.64, 'Y'=> 16.35

因爲在Y的情況下= 10.37 x爲25,其不是最小有x的低的值,在Y的情況下= 13.57 x爲37.85,其是高的,但是在16.35 x的情況是13.64,這是可以的,因爲像(10.37,13.57)這樣的最小Y值具有很大的x值 所以任何想法如何在PHP中解決這個問題

代碼示例:: CODE DEMO

回答

0

確定的解決方案是簡單的:)

只是總結x和y的值,並將它們加載到另一個陣列讓說$ sum_ray;

然後找到通過索引和陣列最小值像

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

那麼你得到了分鐘x和最小Y點的精確對......就像

print_r($xy_dat_ray($min_val_index[0]));