所以挑战者,我有一个用循环构造的数组 而且我想检查数组中是否有两个具有不同代码的索引
所以我的数组就像:
Array (
[0] => Array (
[0] => 1
[1] => 3f
)
[1] => Array (
[0] => 2
[1] => 3s
)
[2] => Array (
[0] => 2
[1] => 2f
)
)
这里有两个索引2,它们没有相同的代码“ 3s”和“ 2f”,所以是一个错误
另一个例子
$err=array();
array_push($err, array(1,'2f'));
array_push($err, array(2,'3f'));
如果新条目为array_push($err, array(2,'4f'));
,如何检查数组中是否存在索引2和代码是否不相似
答案 0 :(得分:0)
我可能用错误的方式解释了这个问题,但是对我来说,您给出的最后一个示例似乎不正确,而是在元素3上应该是0 => 2, 1 => '3s'
(在您编辑后,您确认了我的怀疑)
所以我的解释是,您要检查数据集中是否存在相同的INDEX但不同的CODE。
要进行检查,可以使用一维数组并按以下方式执行检查:
foreach ($files as $file ) {
if (isset($this->tab[$file->INDEX]) && $this->tab[$file->INDEX] != $file->CODE) {
// Failure state
}
$this->tab[$file->INDEX] = $file->CODE;
}
答案 1 :(得分:0)
我已经创建了一个函数,您可以尝试以下操作:
function check(array $files){
$collect = [];
foreach($files as $file){
foreach($collect as $record){
if($record === $file) //check code and value or array identical
return true; //return true if match found
}
$collect[] = $file; //collect all array (index and code)till match
//not found
}
return false; //return false if match not found at last
}
$files= Array (
0 => Array (
0 => 1,
1 => '3f'
),
1 => Array (
0 => 2,
1 => '2f'
),
2 => Array (
0 => 2,
1 => '2f'
)
);
var_dump(check($data));
成功则返回true