<?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); |