##現状
PHP 7.2
CakePHP 3.x系
で開発を行なっています。
ある連想配列を、ある条件の時だけ先頭に持っていきたいと考えています。
現状の連想配列の中身はこちらです。
[ (int) 0 => object(App\Model\Entity\Hoge) { 'id' => (int) 1, 'title' => 'aaaaaaa', }, (int) 1 => object(App\Model\Entity\Hoge) { 'id' => (int) 2, 'title' => 'bbbbbbbbb', }, (int) 2 => object(App\Model\Entity\Hoge) { 'id' => (int) 3, 'title' => 'ccccccccc', }, (int) 3 => object(App\Model\Entity\Hoge) { 'id' => (int) 4, 'title' => 'ddddddddd', } ]
こちらの連想配列のidと
下記の連想配列のkeyが一致する時、上記の連想配列の要素を先頭に持ってきたいです。
[ (int) 3 => (int) 0, (int) 1 => (int) 0, (int) 2 => (int) 11, (int) 4 => (int) 12 ]
なんとなく書いたコードがこちらになります。
php
1//一番目の配列を$aとします。 2//二番目の配列は$bとします。 3 4foreach ($a as $hoge) { 5 foreach ($b as $key => $value) { 6 if ($hoge->id == $key) { 7 // 一致した要素を先頭に持ってくる 8 } 9 } 10}
期待する値はこちらです。
[ (int) 0 => object(App\Model\Entity\Hoge) { 'id' => (int) 3, 'title' => 'ccccccccc', }, (int) 1 => object(App\Model\Entity\Hoge) { 'id' => (int) 1, 'title' => 'aaaaaaa', }, (int) 2 => object(App\Model\Entity\Hoge) { 'id' => (int) 2, 'title' => 'bbbbbbbbb', }, (int) 3 => object(App\Model\Entity\Hoge) { 'id' => (int) 4, 'title' => 'ddddddddd', } ]
##質問事項
- 期待とする結果となるコードを教えて頂きたいです。
足りない点ありましたら、修正依頼等でコメント下さい。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/09 05:25