1

私は2つの配列を持っています。

array('ly', 'ful', 'ay')

array('beautiful', 'lovely', 'power')

サフィックスが最初の配列と一致した2番目の配列の内容を印刷したい。つまり、出力は , となるはずlovelyですbeautiful

PHPでこれを行うにはどうすればよいですか?

4

4 に答える 4

1

結果の配列で順序が重要ではないと仮定すると、これはあなたが望むものを与えるはずです:

$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
)
*/

デモを見る

于 2013-05-17T04:37:10.033 に答える