次の様なコードで一致した項目を並び替えて先頭に表示させるにはどうしたら良いでしょうか?
単純に$keyと$itemsの配列をarray_replaceで置き換えようとしてもうまくいかずに頭を悩ませています。
lang
1$key = array_flip( $key ); 2foreach ( $items as $item ) { 3 if ( isset( $key[ $item -> name ] ) ) { 4 echo '<li>Success: ' . $item -> name . '</li>'; 5 } else { 6 echo '<li>Fail: ' . $item -> name . '</li>'; 7 } 8}
現在の表示結果
- Success: A
- Fail: B
- Success: C
- Fail: D
求める表示結果
- Success: A
- Success: C
- Fail: B
- Fail: D
$itemsの内容
array(3) {
[0]=>
object(stdClass)#0 (10) {
["name"]=>
string(1) "A"
~省略~
}
[1]=>
object(stdClass)#1 (10) {
["name"]=>
string(1) "B"
~省略~
}
[2]=>
object(stdClass)#2 (10) {
["name"]=>
string(1) "C"
~省略~
}
[3]=>
object(stdClass)#3 (10) {
["name"]=>
string(1) "D"
~省略~
}
}
$keyの内容
array(2) {
[0]=>
string(1) "A"
[1]=>
string(1) "C"
}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/02 14:21