为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕斯王 2023-04-28 14:39:22
我有两个只区分一个元素的数组,即使一个元素不同,我也想得到真相。不同的元素可以位于不同的索引中,在我的示例中它位于数组的第三个索引中。  $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                }我希望我清楚地描述了我的问题。
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

您可以使用 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;

    }


查看完整回答
反对 回复 2023-04-28
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

在某些情况下,表实际上是相等的。示例:$aRoutesByClass = array ( 1 => 'recovery-changes', ) $aUserSettingUrl = array ( 1 => 'recovery-changes', )



查看完整回答
反对 回复 2023-04-28
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

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


<?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";

}

?>


查看完整回答
反对 回复 2023-04-28
  • 3 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信