首页 > 解决方案 > 在php中匹配两个数组的ID

问题描述

我有 2 个数组 $dizi1 和 $dizi2。而这些都是这样的。

$dizi1 = [
[
  'id' => 1,
  'name' => 'özkan',
  'surname' => 'özdemir',
],
[
    'id' => 2,
    'name' => 'çağrı',
    'surname' => 'uğurel',
],
[
    'id' => 3,
    'name' => 'can',
    'surname' => 'tokay'
],
[
    'id' => 4,
    'name' => 'lütfü',
    'surname' => 'uzun'
]
];

$dizi2 = [
[
    'id' => 2,
    'birthday' => 1993
],
[
    'id' => 3,
    'birthday' => 1990
],
[
    'id' => 4,
    'birthday' => 1989
],
[
    'id' => 1,
    'birthday' => 1987
]
];

这就是我想要的

istenenDizi = [
[
    'id' => 1,
    'name' => 'özkan',
    'surname' => 'özdemir',
    'birthday' => 1987,
]
];

我重新搜索了很多,但我找不到执行此操作的算法。我还将创建两个 excel 表,我将使用它。你能帮我吗?我该怎么做?谢谢!

标签: phparraysmultidimensional-array

解决方案


您可以使用foreach(), array_search()array_column()如下所示:-

$istenenDizi = [];

foreach($dizi1 as $dizi1){

  $istenenDizi[$dizi1['id']] = $dizi1;
  $istenenDizi[$dizi1['id']]['birthday'] = $dizi2[array_search($dizi1['id'],array_column($dizi2,'id'))]['birthday'];
}
$istenenDizi = array_values($istenenDizi);

print_r($istenenDizi);

输出:- https://eval.in/1000838


推荐阅读