Php 2个阵列的一致性检查问题
在两个阵列之间进行一致性检查时,需要做什么,以便不跳过异常之后的位置。是否有人可以发布一个循环,循环2个数组并打印值是否匹配Php 2个阵列的一致性检查问题,php,arrays,Php,Arrays,在两个阵列之间进行一致性检查时,需要做什么,以便不跳过异常之后的位置。是否有人可以发布一个循环,循环2个数组并打印值是否匹配 $arr1 = array('apple', 'pear', 'banana', 'orange', 'melon', 'kiwi'); $arr2 = array('apple', 'pear', 'banana', 'melon', 'kiwi'); $count = 0; //keeps track of position to be checked in arra
$arr1 = array('apple', 'pear', 'banana', 'orange', 'melon', 'kiwi');
$arr2 = array('apple', 'pear', 'banana', 'melon', 'kiwi');
$count = 0; //keeps track of position to be checked in arrays.
在这种情况下,循环应该打印true、true、true、false、true、true。应注意的是,当发现异常时,将删除该值,以便使用归一化位置检查未来值,以说明删除的错误值。我尝试使用unset()后跟数组_values(),但总是跳过下一个值。对我来说,这是一个一个接一个的噩梦。有什么想法吗
$count = 0;
$lines = file("url");
foreach($lines as $line_num => $line){
if(strcmp(sub($line, 0, 3), 'gis') == 0){
$site = sub($line, 3, 7); //get latitude eg. gis4021
if($site != $sites[$count]){
//deal with case where $site does not equal expected value in base array
}
else//$sites equals expected value in array
$count++;
}
}
这是可行的,但显然您需要添加某种类型的错误检查,例如查看
$arr2
是否不长于$arr1
:
$arr1=数组('apple','pear','banana','orange','sample','kiwi');
$arr2=数组('苹果'、'梨'、'香蕉'、'瓜'、'猕猴桃');
$count=计数($arr1);
对于($i=0,$j=0;$i<$count;$i++){
如果($arr1[$i]==$arr2[$j]){
$j++;
打印“真”;
继续;
}
打印“假”;
}
代码输出true-false-true
正如您所见,它会遍历
$arr1
的所有条目,因为$i
总是递增的,但是,$j
是$arr2
的迭代器,只有在找到匹配值时才会递增。您的实际目标是什么?是为了找到两个数组中都存在的值吗?如果是的话,对您来说会更好?您还应该发布您正在使用的不起作用的代码。您不需要修改任何一个数组来完成所描述的内容。$arr2
是否始终是“参考”数组?i、 e.具有所需值的数组将很快使用实际代码进行编辑
$arr1 = array('apple', 'pear', 'banana', 'orange', 'melon', 'kiwi');
$arr2 = array('apple', 'pear', 'banana', 'melon', 'kiwi');
$count = count($arr1);
for ($i = 0, $j = 0; $i < $count; $i++) {
if ($arr1[$i] == $arr2[$j]) {
$j++;
print 'true ';
continue;
}
print 'false ';
}