2016-12-19 5 views
1

Iが含ま順序で複数のアレイと値を含むつのアレイを持っ1 2 3 4 5 6 7 8など....私はこの構造特定の配列をどのように注文するのですか?

["Categ1"]=> 
array(3) { 
    ["order"]=> 
    string(1) "5" 
    [0]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
    [1]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
} 
["Categ2"]=> 
array(3) { 
    ["order"]=> 
    string(1) "2" 
    [0]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
    [1]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
} 

を変更することはできません

私必要性は非常に単純ですが、私は解決策を見つけることができません。

["Categ2"]=> 
array(3) { 
    ["order"]=> 
    string(1) "2" 
    [0]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
    [1]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
} 
["Categ1"]=> 
array(3) { 
    ["order"]=> 
    string(1) "5" 
    [0]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
    [1]=> 
    array(5) { 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    string(x) "xxx" 
    ["content"]=> 
    NULL 
    } 
} 

私はstackov上の解決策を見つけられませんでした

順序値を持つ単純な順序をerflow yet

+0

可能な重複[?PHPのフィールドで並べ替え配列](http://stackoverflow.com/questions/10000005/php-sort-array-by-field) –

+0

私はちょうど1つの配列を使用しています – Sydowh

答えて

1

カスタムソート関数を定義し、それをPHPソート関数に渡す必要があります。例えばuasort

この最小限の例は、それがかなり良いことを示しています。

$cats = [ 
    'cat1' => [ 
     "order" => 5, 
     ["foo" => "bar"] 
    ], 
    'cat2' => [ 
     "order" => 3, 
     ["foo" => "bar"] 
    ] 
]; 

uasort($cats, function($a, $b){ 
    return $a['order'] > $b['order']; 
}); 

var_dump($cats); 

ウィル出力:

array (size=2) 
'cat2' => 
    array (size=2) 
     'order' => int 3 
     0 => 
     array (size=1) 
      'foo' => string 'bar' (length=3) 
'cat1' => 
    array (size=2) 
     'order' => int 5 
     0 => 
     array (size=1) 
      'foo' => string 'bar' (length=3) 
関連する問題