2012-01-06 8 views
1

私はここ数時間、この問題に対する解決策を見つけようとしています。あなたがobjを見ることができるようにカスタム値を持つキーを前面に持ってくる - 多次元の配列

Array 
(
    [0] => stdClass Object 
     (
      [id] => 128 
      [itemID] => 27 
      [attribute] => xxx 
     ) 

    [1] => stdClass Object 
     (
      [id] => 129 
      [itemID] => 27 
      [attribute] => xxx 
     ) 

    [2] => stdClass Object 
     (
      [id] => 130 
      [itemID] => 27 
      [attribute] => xxx 
     ) 

    [3] => stdClass Object 
     (
      [id] => 131 
      [itemID] => 27 
      [attribute] => xxx 
     ) 

    [4] => stdClass Object 
     (
      [id] => 132 
      [itemID] => 27 
      [attribute] => xxx 
     ) 

    [5] => stdClass Object 
     (
      [id] => 133 
      [itemID] => 27 
      [attribute] => yyy 
     ) 

    [6] => stdClass Object 
     (
      [id] => 134 
      [itemID] => 27 
      [attribute] => xxx 
     ) 

) 

私はこの多次元配列を持っています。 5には属性キーが 'yyy'になっています。 私はforey、yyyの結果が最初になるように、再注文のように 'yyy'の属性キーを含むこのオブジェクトを前面に持ってきたいと思います。

オンラインで見つかった別のスニペットを試しましたが、助けてくれたスニペットが見つかりませんでした。

答えて

1

を考える上で、あなたの配列:

function sortMyArray($item1, $item2) { 
    $result = 0; 
    if ($item1->attribute == 'yyy') { 
     $result = -1; 
    } 
    else if ($item2->attribute == 'yyy') { 
     $result = 1; 
    } 
    return $result; 
} 

usort($yourArray, "sortMyArray"); 
+0

@SergeSは最初に正しい答えを得ました。 usortは行く方法です。 – davidethell

+0

ありがとうございます! – MariusH

0

これを参照してください - http://www.php.net/manual/en/function.usort.php、あなたの配列ので、ソートあなた

を助け、および$としてYYYの属性はあなたが望むものである場合に比較してカスタム関数を、(使用して、-1を返しYYYのための$とし、1もB、そうでない場合は0)

+0

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

関連する問題