تابع بازگشتی in_array که یک عبارت را در تمام زیر شاخه های یک آرایه چند بعدی بررسی میکند.

function in_array_r($needle, $haystack, $strict = false) {
  foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
      return true;
    }
  }
  return false;
}