比较php数组的结构,无论内容如何

我有两个数组,我想比较它们的结构,即相同的键.
我尝试使用array_diff_key,但问题是定义了一个数组,如下所示:

    $fields = array('id' , 'site', 'placement', 'device', 'source', 'campaign', 'url', 'country', 'dof_count', 'dof_idx', 'active');

所以当我在上面使用var_dump()时,我得到以下结果:

{
  [0]=>
  string(2) "id"
  [1]=>
  string(4) "site"
  [2]=>
  string(9) "placement"
  [3]=>
  string(6) "device"
  [4]=>
  string(6) "source"
  [5]=>
  string(8) "campaign"
  [6]=>
  string(3) "url"
  [7]=>
  string(7) "country"
  [8]=>
  string(9) "dof_count"
  [9]=>
  string(7) "dof_idx"
  [10]=>
  string(6) "active"
}

一个是由一个函数创建的,然后像这样返回:

{
  ["id"]=>
  NULL
  ["site"]=>
  NULL
  ["placement"]=>
  NULL
  ["device"]=>
  NULL
  ["source"]=>
  NULL
  ["campaign"]=>
  NULL
  ["url"]=>
  NULL
  ["country"]=>
  NULL
  ["dof_count"]=>
  int(0)
  ["dof_idx"]=>
  NULL
  ["active"]=>
  NULL
}

因此,尽管两个数组具有相同的结构,但array_diff_key却无济于事. PHP中有没有一种方法可以在忽略内容的同时比较这两个数组的结构,在我的情况下,它是第二个数组中的所有null和一个int?

解决方法:

您可以简单地将array_diff与array_keys一起使用

$result = array_diff($fields,array_keys($keys_array));

注意:未测试

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...