連想配列の検索方法の仕方に関する質問
質問が長くなりましたので、
http://webtomake.hatenablog.com/entry/2015/08/21/165038
をご覧くさい。
こんな感じでどうでしょう。
<?php function markup_same_route($a, $b) { foreach ($b as $i) { if (array_search($i, $a)) { $c[] = '★' . $i . '★'; } else { $c[] = $i; } } $s = implode('|', $c); $n = count($b); while ($n > 0) { $s2 = preg_replace('/→(.*?)★\|★\1→/', '→\1|\1→', $s); if ($s == $s2) { break; } else { $s = $s2; } $n = $n - 1; } $c = explode('|', $s); return $c; } // test $a = ... $b = ... $c = markup_same_route($a, $b); print_r($c); ?>
ideone.com で試したのがこちらです。
http://ideone.com/6BkWBT