【问题标题】:How to check if one array contains another in php in a sequence?如何检查一个数组是否按顺序在php中包含另一个数组?
【发布时间】:2019-07-22 22:28:45
【问题描述】:

我有两个数组:

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

如果我们检查 $a 是否包含 $b 或 $a 包含 $c 它应该返回“TRUE”,因为 $b 的索引与 $a 和 $c 顺序一致,即它们都有 $ "c","d ","e" 并且它们按顺序出现在 $a 中。 但是,如果$b = array("c", "g", "d"),那么我们应该得到错误,因为它具有所有元素,但它们在 $a 中的顺序不正确。

【问题讨论】:

  • 试过什么?

标签: php indexing contains


【解决方案1】:

这样的事情应该可以解决问题:

$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');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 2015-10-28
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多