Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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 - Fatal编程技术网

Php 当两个数组中的一个元素不同时,如何比较这两个数组以获得真相

Php 当两个数组中的一个元素不同时,如何比较这两个数组以获得真相,php,Php,我有两个数组,它们只区分一个元素,我想知道真相,即使一个元素不同。不同的元素可以位于不同的索引中,在我的示例中,它位于数组的第三个索引中 $aRoutesByClass = array ( 1 => 'odbiorca', 2 => 'umowy-z-odbiorcami', 3 => '{agreement2lvl:id}', 4 => 'wyda

我有两个数组,它们只区分一个元素,我想知道真相,即使一个元素不同。不同的元素可以位于不同的索引中,在我的示例中,它位于数组的第三个索引中

  $aRoutesByClass = array (
               1 => 'odbiorca',
               2 => 'umowy-z-odbiorcami',
               3 => '{agreement2lvl:id}',
               4 => 'wydarzenia',
                      )


   $aUserSettingUrl = array (
               1 => 'odbiorca',
               2 => 'umowy-z-odbiorcami',
               3 => '13732',
               4 => 'wydarzenia',
                           )


           if ($aRoutesByClass == $aUserSettingUrl) {
                    //FALSE
                    //I wish it were true if only one element is different
                }
我希望我清楚地描述了我的问题。

您可以使用array_diff()来比较两个数组,它将给出不同元素数组的结果,然后您可以检查count()是否为1,然后您将获得true尝试以下代码

$aRoutesByClass = array (
       1 => 'odbiorca',
       2 => 'umowy-z-odbiorcami',
       3 => '{agreement2lvl:id}',
       4 => 'wydarzenia',
    );


    $aUserSettingUrl = array (
            1 => 'odbiorca',
            2 => 'umowy-z-odbiorcami',
            3 => '13732',
            4 => 'wydarzenia',
    );

    $result = array_diff($aRoutesByClass,$aUserSettingUrl); 

    if (count($result) == 1) {
        echo "true";exit;
    }
您可以使用array_diff()来比较两个数组,它将给出不同元素数组的结果,然后您可以检查count()是否为1,然后您将得到true尝试以下代码

$aRoutesByClass = array (
       1 => 'odbiorca',
       2 => 'umowy-z-odbiorcami',
       3 => '{agreement2lvl:id}',
       4 => 'wydarzenia',
    );


    $aUserSettingUrl = array (
            1 => 'odbiorca',
            2 => 'umowy-z-odbiorcami',
            3 => '13732',
            4 => 'wydarzenia',
    );

    $result = array_diff($aRoutesByClass,$aUserSettingUrl); 

    if (count($result) == 1) {
        echo "true";exit;
    }

如果我理解你的意思,你想比较两个数组,如果只有一个元素是不同的,它应该显示为真

<?php
$aRoutesByClass = array (
               1 => 'odbiorca',
               2 => 'umowy-z-odbiorcami',
               3 => '{agreement2lvl:id}',
               4 => 'wydarzenia',
                      );


   $aUserSettingUrl = array (
               1 => 'odbiorca',
               2 => 'umowy-z-odbiorcami',
               3 => '13732',
               4 => 'wydarzenia',
                           );
$counter = 0;

for($i = 1; $i<= count($aRoutesByClass); $i++){
    if($aRoutesByClass[$i] != $aUserSettingUrl[$i]){
        $counter++;
    }
}

if($counter == 1){
    echo "Even";
}else{
    echo "Odd";
}
?>

如果我理解你的意思,你想比较两个数组,如果只有一个元素不同,它应该显示true

<?php
$aRoutesByClass = array (
               1 => 'odbiorca',
               2 => 'umowy-z-odbiorcami',
               3 => '{agreement2lvl:id}',
               4 => 'wydarzenia',
                      );


   $aUserSettingUrl = array (
               1 => 'odbiorca',
               2 => 'umowy-z-odbiorcami',
               3 => '13732',
               4 => 'wydarzenia',
                           );
$counter = 0;

for($i = 1; $i<= count($aRoutesByClass); $i++){
    if($aRoutesByClass[$i] != $aUserSettingUrl[$i]){
        $counter++;
    }
}

if($counter == 1){
    echo "Even";
}else{
    echo "Odd";
}
?>

在有些情况下,表格实际上是相等的。 例子: $aRoutesByClass=数组( 1=>“zmiany-w-windykacji”, ) $aUserSettingUrl=阵列( 1=>“zmiany-w-windykacji”,
)在有些情况下,表格实际上是相等的。 例子: $aRoutesByClass=数组( 1=>“zmiany-w-windykacji”, ) $aUserSettingUrl=阵列( 1=>“zmiany-w-windykacji”, )