我有两个数组,我想比较它们的结构,即相同的键.
我尝试使用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));
注意:未测试