[Solved] merge two array with loop and key name


$arr1 = [ [ '_date' => '2019-10-16','_number' => 1,'_order' => 1,
            'name' => 'jack','other_ids' => ['b_id' => 1253]
          ],
          ['_date' => 2020-10-11,'_number' => 2,'_order' => 2,
                'name' => 'joey','other_ids' => ['b_id' => 1433]
          ]
];

$arr2 = [ [ 'date' => '2019-10-16','number' => '1','order' => '1',
        'name' => 'jack','last_name' => 'foobar','other_ids' => ['b_id' => 1253]
          ],
          [ 'date' => '2019-10-11','number' => '2','order' => '2',
        'name' => 'joey','last_name' => 'foobar','other_ids' => ['b_id' => 1433]
         ],
         [ 'date' => '2019-10-28', 'number' => '3', 'order' => '3',
        'name' => 'tom', 'last_name' => 'foobar', 'other_ids' => ['b_id' => 1593]
         ],
];

// first make second array more directly searchable
// make new array with the `number` as the key
foreach( $arr2 as $a){
    $arr2new[$a['number']] = $a;
}

foreach ($arr1 as $a) {
    if ( array_key_exists($a['_number'], $arr2new) && 
        $a['_order'] == $arr2new[$a['_order']]['order'] )  
    {
        $merged[] = ['name'=>$a['name'], 'other_ids' => $a['other_ids']];
    }
}
print_r($merged);

RESULT

Array
(
    [0] => Array (
            [name] => jack
            [other_ids] => Array
                (
                    [b_id] => 1253
                )
        )
    [1] => Array (
            [name] => joey
            [other_ids] => Array
                (
                    [b_id] => 1433
                )
        )
)

solved merge two array with loop and key name