我正在尝试比较两个PHP数组,它们中包含不同的信息,但两者都有相同的密钥" id"我试图比较。
第一个阵列:
Array
(
[0] => Array
(
[id] => 59
[number] => 0002319411QT17D
[type] => 2
[rate] => 1
[site] => 776
[reading] => 0.00
[activity] => 1
[distance] => 0.000
)
[1] => Array
(
[id] => 60
[number] => 0000149450TR36E
[type] => 1
[rate] => 1
[site] => 777
[reading] => 0.00
[activity] => 1
[distance] => 0.000
)
[2] => Array
(
[id] => 61
[number] => 0000112211TR135
[type] => 1
[rate] => 2
[site] => 777
[reading] => 0.00
[activity] => 1
[distance] => 0.000
)
)
然后我有第二个数组:
Array
(
[0] => Array
(
[id] => 59
[emp_inv] => 1
[emp_gen] => 1970-01-01 12:00:00
)
[2] => Array
(
[id] => 59
[emp_inv] => 2
[emp_gen] => 1970-01-01 12:00:00
)
[3] => Array
(
[id] => 59
[emp_inv] => 3
[emp_gen] => 1970-01-01 12:00:00
)
)
我只是想知道第一个数组中的[id]出现在第二个数组中。
e.g。 [id] =>两个阵列中都出现了59,但是id 60没有出现。
我尝试过各种各样的PHP函数,例如array_assoc来获取差异,但它只是返回空白数组,不确定这是否有一些东西,因为它是另一个数组中的数组。
希望有人可以提供帮助,谢谢:)
答案 0 :(得分:2)
您可以使用array_column()
找到两个数组中存在的ID(如果您使用的是PHP 5.5或更高版本):
$commonIds = array_intersect(array_column($first, 'id'), array_column($second, 'id'));
Example。如果您使用的是早期版本的PHP here's an alternative implementation(从PHP手册中推荐) - 或者使用几个循环构建一些手册。
如果您想检查两个数组中是否存在ID,请执行$exists = (in_array(123, $commonIds)); // false