2016-01-13 48 views
0

這裏數組值是我的數組:比較的只有1陣列

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [0] => West 
        [1] => 4 
       ) 

      [1] => Array 
       (
        [0] => South west 
        [1] => 20 
       ) 

     ) 

) 

我想實現的是能夠比較$array[0][0][1]$array[0][1][1]。因此,無論哪個更小先來,我得到的價值。所以在這種情況下,我知道4更小,所以我先得到西部,然後南西部是下一個。它應該是動態的,因爲我們可以得到超過2

+0

這裏有三個級別的數組,所以目前還不完全清楚你打算分類什麼。你想排序最外面的數組('$ array')嗎?或者中間的數組('$ array [0]')? – jbafford

+1

你能告訴我們你到現在爲止所嘗試過的嗎? –

+0

正如你所說,它應該是動態的,請顯示你最終的數組,然後我將開始處理它。 – Monty

回答

1

這是一個簡單的例子,你可以使用:

$arr = array(
array("name"=>"Bob","age"=>8,"colour"=>"red"), 
array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
array("name"=>"Andy","age"=>5,"colour"=>"purple")); 

$sortArray = array(); 

foreach($arr as $val){ 
    foreach($val as $key=>$value){ 
     if(!isset($sortArray[$key])){ 
      $sortArray[$key] = array(); 
     } 
     $sortArray[$key][] = $value; 
    } 
} 

$orderby = "age"; //change this to whatever key you want from the array 

array_multisort($sortArray[$orderby],SORT_ASC,$arr); 

print_r($arr); 
+0

我看到了這樣的代碼,你是按照最低優先順序對數組進行排序,然後你可以提取它。 – Knide

+0

@Knide有不同類型的排序,更多信息:http://php.net/manual/en/function.array-multisort.php – Alex

0

假設陣列結構的深度保持不變,而您只需要非常低,你可以使用一個簡單的foreach。

function findLowestName($array) { 
    $lowest = 0; // variable to hold the index of the lowest entry. 
    // go through every entry in the first array member 
    foreach($array[0] as $key => $value) { 
     // if this entry is lower than the 'current' lowest, mark this as the new lowest 
     if($value[1] < $array[0][$lowest]) { 
      $lowest = $key; 
     } 
    } 
    return $array[0][$lowest][0]; 
} 

建成一個功能,讓您可以包括它,並調用該函數,向它傳遞數組作爲參數。