gpt4 book ai didi

php - 检查一个数组是否包含另一个数组的所有元素

转载 作者:可可西里 更新时间:2023-11-01 13:23:04 25 4
gpt4 key购买 nike

我正在设计一个电气工程应用程序。但是,我坚持这一点:我有以下数组

<?php 
// Static Array
$GroupOfEight = array (
array(0,1,3,2,4,5,7,6),
array(4,5,6,7,16,12,13,14),
array(12,13,15,14,8,9,11,10),
array(2,6,14,10,3,7,15,11),
array(1,3,5,7,13,15,9,11),
array(0,4,12,8,1,5,13,9),
array(0,1,3,2,8,9,11,10)
);
?>

我还有另一个数组,但这个是一维的。

<?php
$myStack = array(0,1,3,2,4,5,7,6); //Dynamic, gets value by POST method.
?>

我想做的是检查 $myStack 是否等于 $GroupOfEight 数组的任何子数组。 (数字顺序并不重要。脚本应该只检查是否包含每个元素。它们的顺序是否相同并不重要。)

到目前为止,这是我为解决该问题所做的工作:

<?php
//Check if stackArray contains 8group
for($i=0; $i<count($GroupOfEight);$i++)
for($j=0; $j<count($GroupOfEight[$i]); $j++){
//$containsSearch = count(array_intersect($search_this,$all)) == count($search_this);
$containsSearch = count(array_intersect($stackArray,$GroupOfEight[$j])) == count($stackArray);
echo $containsSearch;
}
?>

请帮我改正我的代码或介绍一下这个问题的解决方法,谢谢。

编辑:它应该只给出 1 个索引号。例如 stackArray 是 0,1,3,2,4,1,2,3 并且它应该找到匹配相同数字的 GroupOfEight[N],而不管数字的顺序如何。如果有匹配的情况,我应该得到 N。

最佳答案

给定您的示例数组,其输出将是:

> 0

如果你不得不只有一个数字输出,应该这样做:

<?php
//Check if stackArray contains 8group
$check=false;
for($i=0; $i<count($GroupOfEight);$i++){
//$containsSearch = count(array_intersect($search_this,$all)) == count($search_this);
$containsSearch = (count(array_intersect($stackArray,$GroupOfEight[$i])) == count($stackArray) && count(array_intersect($stackArray,$GroupOfEight[$i])) == count($GroupOfEight[$i]));
if($containsSearch && !$check){
echo $i; //This specifies which index in GroupOfEight contains a matching array
$check=true;
}
}
?>

编辑:做了一个函数。返回第一个匹配的索引或 -1 表示没有匹配:

function searcheight($stackArray,$GroupOfEight){
for($i=0; $i<count($GroupOfEight);$i++){
$containsSearch = (count(array_intersect($stackArray,$GroupOfEight[$i])) == count($stackArray) && count(array_intersect($stackArray,$GroupOfEight[$i])) == count($GroupOfEight[$i]));
if($containsSearch){
return $i; //This specifies which index in GroupOfEight contains a matching array
}
}
return -1;
}
echo searcheight($stackArray,$GroupOfEight);

关于php - 检查一个数组是否包含另一个数组的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12867315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com