Проверьте, существует ли ключ массива как другое значение массива

У меня есть массив с именем $menu_array ; и в настоящее время выглядит так

  [0] => Array ( [id_parent_menu] => 4 [parent_info] => test [children_menu] => Array ( [0] => Array ( [id_child_menu] => 21 [children_info] => test ) [1] => Array ( [id_child_menu] => 22 [children_info] => test2. ) ) ) 

и так далее.

У меня также есть другой массив $access который выглядит так:

  array( [4]='true' [22]='true' ) 

То, что я пытаюсь сделать, это проверить, существует ли ключ для массива $access как id_parent_menu , а затем поставить ключ и значение

 $menu_array[can_view]='true'; 

Затем также проверьте, существует ли внутри массива $children_menu внутри $menu_array если ключ $access существует как id_child_menu и также устанавливает значение can_view = true .

 $menu_array['children_menu'][1]['can_view']='true'; 

 foreach ($menu_array as $key => $value){ if(isset($access[$value['id_parent_menu']]) && $access[$value['id_parent_menu']]) { $menu_array[$key]['can_view']=true; foreach($value['children_menu'] as $key2 => $value2) if(isset($access[$value2['id_child_menu']]) && $access[$value2['id_child_menu']]) $menu_array[$key]['children_menu'][$key2]['can_view']=true; } } 

(Детский элемент может быть виден только в том случае, если отображается родительский элемент.)