2017-12-27 12 views
0

Laravelアプリを開発しているうちに、配列の並べ替えで問題が発生しました。最初は、私は時間をかけて配列を等しいチャンクに分割するためにパーティション問題を使用しましたが、今は配列のIDでソートするのに問題があります。Laravelネストされた配列を最初の値で並べ替えます。

マイ配列:

array(2) { 
    [0]=> 
    array(3) { 
    [0]=> 
    array(8) { 
     [0]=> 
     int(4) <----- this is value i need to sort by 
     [1]=> 
     int(15) 
     [2]=> 
     string(64) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [1]=> 
    array(8) { 
     [0]=> 
     int(6) 
     [1]=> 
     int(10) 
     [2]=> 
     string(64) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [2]=> 
    array(8) { 
     [0]=> 
     int(2) 
     [1]=> 
     int(8) 
     [2]=> 
     string(85) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    } 
    [1]=> 
    array(3) { 
    [0]=> 
    array(8) { 
     [0]=> 
     int(3) 
     [1]=> 
     int(14) 
     [2]=> 
     string(158) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [1]=> 
    array(8) { 
     [0]=> 
     int(5) 
     [1]=> 
     int(12) 
     [2]=> 
     string(158) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [2]=> 
    array(8) { 
     [0]=> 
     int(1) 
     [1]=> 
     int(7) 
     [2]=> 
     string(55) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    } 
} 

私はので、私のidという、各配列の最初の値でソートする必要があります。私が必要

出力:

array(2) { 
    [0]=> 
    array(3) { 
    [0]=> 
    array(8) { 
     [0]=> 
     int(1) 
     [1]=> 
     int(15) 
     [2]=> 
     string(64) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [1]=> 
    array(8) { 
     [0]=> 
     int(2) 
     [1]=> 
     int(10) 
     [2]=> 
     string(64) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [2]=> 
    array(8) { 
     [0]=> 
     int(3) 
     [1]=> 
     int(8) 
     [2]=> 
     string(85) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    } 
    [1]=> 
    array(3) { 
    [0]=> 
    array(8) { 
     [0]=> 
     int(4) 
     [1]=> 
     int(14) 
     [2]=> 
     string(158) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [1]=> 
    array(8) { 
     [0]=> 
     int(5) 
     [1]=> 
     int(12) 
     [2]=> 
     string(158) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    [2]=> 
    array(8) { 
     [0]=> 
     int(6) 
     [1]=> 
     int(7) 
     [2]=> 
     string(55) "text..." 
     [3]=> 
     string(6) "650008" 
     [4]=> 
     string(13) "NP08KDT" 
     [5]=> 
     int(48) 
     [6]=> 
     string(6) "456467" 
     [7]=> 
     int(33) 
    } 
    } 
} 

多分君たちのいずれかのこれまでのところ、私は機能を、ソートの多くを試みたが、私はこの問題を解決する可能性がどのように任意のソリューションを持って、それらのどれも私のために正常に動作していないようにみえます。

ありがとうございました!

答えて

0

これはこれを実行する最善の方法ではないかもしれませんが、このようなことを試すことができます。

$tempArray = array(); 
$sortedArray = array(); 

foreach ($yourArray as $key1 => $arr){// create 2D array 

    foreach ($arr as $key2 => $arr2){ 
     $tempArray[] = $arr2;   
    } 

} 

foreach ($tempArray as $keyTemp => $tempElem){ 

    $sortingArray[] = $tempElem[0];//get array value you need to sort 

}  
asort($sortingArray);// sort array maintaining the key 

foreach ($sortingArray as $keySort => $sortElem){//loop through sorted array to push elements to a new array 
    $sortedArray[] = $tempArray[$keySort]; 
} 

print_r($sortedArray); 
+0

ほとんど動作しています! :)それはちょうど各配列を並べ替える、私はそれらが両方の配列を介して1から6に上昇する必要があります。私はあなたが私が意味したことを理解してほしい:) – arnas120

+0

私はあなたがあなたの質問の出力に記載されているように、別々にソートするために各配列が必要だと思った。私の答えを変更しました。 – user27

+0

オハイオ州、おそらく私は物事を説明するのが悪いですね、ここでのアイデアは本当にうまくいっていますが、私はそれらの2つの配列を持っており、だから私が必要とするのは、両方の配列が昇順になるということです。例:array1 - 1、2、3;配列2 - 4,5,6;私は今それが解決されたとしてあなたの答えをマークするあなたの努力のために本当にありがとう、より明確であることを望む:) – arnas120

関連する問題