2つの文字列の組み合わせが複数あり、その中から重複しているもののみを抽出しようとしています。
組合せ順も同一のもののみを抽出します。
lang
1$target = array(array('100', '200'), array('100', '300'), 2 array('200', '200'), array('100', '200')); 3$checked = array(); // 確認済み組合せ 4$overlapped = array(); // 重複した組合せ 5foreach ($target as $data){ 6 if (!in_array($data, $checked)){ 7 $checked[] = $data; 8 } else{ 9 $overlapped[] = $data; 10 } 11} 12// 重複した組合せを一意にする 13$overlapped = array_unique($overlapped, SORT_REGULAR); 14// Array([0] => Array([0] => '100', [1] => '200'))
この書き方で順番も含む重複組合せの抽出自体は可能なことは確認したのですが、現在作成中の処理では、場合によっては100回以上、上記処理を実行する場合があります。
1回に比較する配列の組み合わせは多くて5つ程度なので単体でみれば速度は気にならないのですが、実行回数が増えた場合の速度が気になっています。
上記の書き方以外で、速度改善が見込める書き方はありますでしょうか。
発想力がなく、これ以外は思いつかなかった次第です。
皆様のご意見を頂けると嬉しいです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。