Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查数组是否包含顺序相同的另一个数组的值_Php_Arrays - Fatal编程技术网

Php 检查数组是否包含顺序相同的另一个数组的值

Php 检查数组是否包含顺序相同的另一个数组的值,php,arrays,Php,Arrays,我有两个阵列,第一个是: [4, 6, 2, 7, 5, 1] 第二个是: [2, 7, 5] 如何确定第一个数组是否包含与第二个数组相同的值(,且顺序相同)。在这种情况下,函数将返回TRUE,因为序列2,7,5实际上存在于第一个数组中。对于2,5,7,它将返回FALSE。值存在于第一个数组中,但顺序不完全相同 是否有用于此的现有PHP函数?如果不是,我应该如何实现这一点?如果数组只是数字,我建议使用一个技巧: $a1 = [4, 6, 2, 7, 5, 1]; $a2 = [2, 7, 5

我有两个阵列,第一个是:

[4, 6, 2, 7, 5, 1]
第二个是:

[2, 7, 5]
如何确定第一个数组是否包含与第二个数组相同的值(,且顺序相同)。在这种情况下,函数将返回
TRUE
,因为序列
2,7,5
实际上存在于第一个数组中。对于
2,5,7
,它将返回
FALSE
。值存在于第一个数组中,但顺序不完全相同


是否有用于此的现有PHP函数?如果不是,我应该如何实现这一点?

如果数组只是数字,我建议使用一个技巧:

$a1 = [4, 6, 2, 7, 5, 1];
$a2 = [2, 7, 5];
// convert both arrays to strings, 
// add `,` in the beginning and end, see @splash58 comment
$a1_str = ',' . implode(',', $a1) . ',';
$a2_str = ',' . implode(',', $a2) . ',';
// check with strpos:
echo strpos($a1_str, $a2_str) !== false? 'Eq' : 'Not eq';

对于数组内容的常见情况:

$ar1 = [2, 4, 6, 2, 4, 7, 5, 1,];
$ar2 = [2, 7, 5];

// Find point where sub-array can start
$keys = array_keys($ar1, $ar2[0]); 
foreach($keys as $k) 
   // Check that sub-array is the same as the second array 
   if(array_slice($ar1, $k, count($ar2)) == $ar2) 
       { echo "Wow!"; break; }

我可以理解这是可行的,但是没有更好的方法来实现这一点吗?由于将数组转换为字符串看起来不太正确…@u_mulder用逗号包装两个字符串,以避免将2,7,5与22,7,55进行比较+因为我也这么想