1

配列クラスのオブジェクト値「FIND_ME」を見つけて、存在する場合は最初の配列キーとしてスワップするphp関数を探しています。

これが私の現在の配列出力です:

Array ( 
        [0] => stdClass Object ([id] => 1 [uid] => 52 [type] => A_TEST [title] => TITLE [value] => 1 ) 
        [1] => stdClass Object ([id] => 2 [uid] => 52 [type] => TEST [title] => TITLE [value] => 1 )
        [2] => stdClass Object ([id] => 3 [uid] => 52 [type] => FIND_ME [title] => TITLE [value] => 1 )
    )

そして、これが私が必要とする結果です:

Array ( 
        [0] => stdClass Object ([id] => 3 [uid] => 52 [type] => FIND_ME [title] => TITLE [value] => 1 ) 
        [1] => stdClass Object ([id] => 2 [uid] => 52 [type] => TEST [title] => TITLE [value] => 1 )
        [2] => stdClass Object ([id] => 1 [uid] => 52 [type] => A_TEST [title] => TITLE [value] => 1 )
    )

結果:配列[2]が変更type => FIND_MEされ、配列で見つかったため、配列[0]になりました。

注:他のキーの順序は気にしません。

何か案が?

編集:さて、type => FIND_MEforeach()を使用するキー番号を見つけることができました:

foreach($array as $key => $value) {
        if ($value->type == 'FIND_ME') {
            $found = $key;
            break;
        }
    }

しかし、それを配列の最初のキーとして交換する方法は?

4

1 に答える 1

2
$found = $others = array();
foreach($array as $key => $value) {
    if ($value->type == 'FIND_ME') {
        $found[] = $value;
    }else{
        $others[] = $value;
    }
}
$array = array_merge($found,$others);
于 2013-03-03T07:18:51.167 に答える