账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于php array_diff的一个奇怪现象,求解释。
    53
    0
    <?php
    
    $a = [
        'name' => '333',
        'send_num' => 0,
        'make_num' => 0,
        'out_num' => 0,
        'use_type' => '2',
        'instruction_type' => '2'
    ];
    
    $b = [
        'name' => '777',
        'send_num' => 101,
        'make_num' => 101,
        'out_num' => 0,
        'use_type' => 1,
        'instruction_type' => 2
    ];
    
    echo '<pre>';
    print_r(array_diff($a, $b));

    为何输出的是:

    Array
    (
        [name] => 333
    )

    个人感觉应该输出的是:

    Array
    (
        [name] => 333
        [send_num] => 0
        [make_num] => 0
        [use_type] => 2
    )

    结果不是,挺奇怪,问题我已经解决了,通过 array_diff_assoc 得到的是先想要的结果,但是就是没搞明白 array_diff 为啥不行。按文档里的解释说 assoc 同时也比较了键名,但是这里的键名都是一样的啊?

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 孤单与酒 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部