如何检查一个数组是否包含序列中 php 中的另一个数组?

How to check if one array contains another in php in a sequence?

我有两个数组:

$a = array("w","c","d","e","g","h");
$b = array("c","d","e");
$c = array("c","e","d");

它应该 return "TRUE" 如果我们检查 $a 是否包含 $b 或 $a 是否包含 $c 因为 $b 的索引与 $a 和 $c i.e.they 都有 $"c","d","e" 并且它们按顺序出现在 $a 中。 但是,如果 $b = array("c", "g", "d"),那么我们应该得到 false,因为它包含所有元素,但它们在 $a 中的顺序不正确。

像这样的东西应该可以解决问题:

$a = ["w","c","d","e","g","h"];
$b = ["c","d","e"];
$c = ["c","e","d"];
function containsSequence($arr, $subArray){
    $keys = array_keys($arr, $subArray[array_keys($subArray)[0]]); 
    foreach($keys as $k) {
        if(array_slice($arr, $k, count($subArray)) == $subArray){
            return true;    
        }
    }
    return false;
}
echo 'Contains sequence: '.(containsSequence($a,$b)?'yes:':'no');
echo 'Contains sequence: '.(containsSequence($a,$c)?'ues':'no');