私は2つの配列を持っています。
array('ly', 'ful', 'ay')
と
array('beautiful', 'lovely', 'power')
サフィックスが最初の配列と一致した2番目の配列の内容を印刷したい。つまり、出力は , となるはずlovely
ですbeautiful
。
PHPでこれを行うにはどうすればよいですか?
結果の配列で順序が重要ではないと仮定すると、これはあなたが望むものを与えるはずです:
$arr1 = ['ly', 'ful', 'ay'];
$arr2 = ['beautiful', 'lovely', 'power'];
$result = array_filter($arr2, function($word) use ($arr1){
$word_length = strlen($word);
return array_reduce($arr1, function($result, $suffix) use ($word, $word_length) {
if($word_length > strlen($suffix))
$result = $result || 0 === substr_compare($word, $suffix, -strlen($suffix), $word_length);
return $result;
}, false);
});
print_r($result);
/*
Array
(
[0] => beautiful
[1] => lovely
)
*/