php array recursive find function

<?php
 
$array1 = array(
    0 => array(
        'id' => 1,
        'name' => 'HiO'
    ),
    1 => array(
        'id' => 2,
        'name' => 'Hyun'
    ),
    'key0' => array(
        'id' => 3,
        'name' => 'test'
    )
);
 
 
$array2 = array(
    0 => array(
        'id' => 15, 
        'name' => 'Plop'
    ),
    1 => array(
        'id' => 4,
        'name' => 'Hyun'
    ),
    2 => array(
        'id' => 56,
        'name' => 'Hehe'
    ),
    3 => array(
        0 => array(
            'id' => 10,
            'name' => 'Hi0',
            'key' => array(
                'id' => 1,
                'name' => 'HiO'
            )
        )
    )
);
 
function find($index, $search, $array) {
    foreach($array as $key => $value) {
        if(is_array($value)) {
            if(find($index, $search, $value)) {
                return true;
            }
        }
        if($key == $index && $value == $search)
            return true;
    }
    return false;
}
 
$not_found_array = array();
$found_array = array();
foreach($array1 as $key => $value) {
    if($find = find('name', $value['name'], $array2)) {
        echo $value['name'].' found !<br />';
        $found_array[] = $value;
    } else {
        echo $value['name'].' not found !<br />';
        $not_found_array[] = $value;
    }
}
 
var_dump($not_found_array, $found_array);