PHP-如何比较数组是否相等?

时间:2020-07-29 00:34:46

标签: php arrays equals

equal lines

我在表中搜索记录,并将它们放入数组中。我在另一个表中搜索记录,并将它们放在另一个数组中。如果每个表中的查询行数相同,并且数组相同,则代码可以识别相等性。

different lines

当一个表中的查询行数与另一张表中的查询数不同时,即使数组相同,代码也会将其标识为不同。


//Query1
while(){
 $vetor_xml[$cfop] += $vTotal;
}

//Query2
while(){
 $vetor_c190[$cfop] += $aux_vl_opr;
}


function identical_values( $arrayA , $arrayB ) {

    ///sort( $arrayA );
    ///sort( $arrayB );

    return ($arrayA == $arrayB);
}


$r = identical_values( $vetor_xml, $vetor_c190);
var_dump($r);

if(($vetor_xml=== $vetor_c190)==false){
 echo "ERROR";
}
else{
 echo "OK";
}

此处是下载测试http://github.com/rafaelspfonseca/test的代码和slq数据的链接

  • NF 475行不起作用
  • 行NF 8989不起作用
  • NF 9139行正在运行
  • NF 9115行不起作用

2 个答案:

答案 0 :(得分:0)

尝试使用var postRefHandle: DatabaseHandle! var query = DatabaseQuery() var postsRefObserver = Database.database().reference().child("posts") // called in viewWillAppear func listen() { self.query = postsRefObserver .queryOrderedByKey() .queryLimited(toLast: 1) self.postRefHandle = self.query.observe(.childAdded) { (snapshot) in // do something } } // called in viewWillDisappear func remove() { if let postRefHandle = postRefHandle { self.postsRefObserver.removeObserver(withHandle: postRefHandle) } self.postsRefObserver.removeAllObservers() }

array_diff

答案 1 :(得分:0)

已解决!。遵循解决方案。

function identical_values( $arrayA , $arrayB ) {

    ///sort( $arrayA );
    //sort( $arrayB );

    return ($arrayA == $arrayB);
}


$res = identical_values( $vetor_xml , $vetor_c190 );

$result = array_diff_assoc($vetor_xml, $vetor_c190);//add new verification
   
  
if(($tem_xml>0)&&(empty($res))) {

   //add new verification here
   if(empty($result)){
      echo"<p><b>EQUAL</b>";
   }
   else{
      echo "<p><b>NOT EQUAL</b>";
      $divergencia++;
   }
}

else{
    echo"<p><b>EQUAL</b>";
}