3v4l.org

run code in 500+ PHP versions simultaneously
<?php $arr = array ( 0 => array ( 'id' => '1', 'p_pag' => '0', 'link' => 'Contact', 'children' => array ( 0 => array ( 'id' => '2', 'p_pag' => '1', 'link' => 'Contact-County', 'children' => array ( 0 => array ( 'id' => '3', 'p_pag' => '2', 'link' => 'Contact-Town-1', 'children' => array ( ), ), ), ), ), ), ); $searchId = 3; $link = null; $iterator = new \RecursiveIteratorIterator( new \RecursiveArrayIterator($arr),\RecursiveIteratorIterator::SELF_FIRST ); foreach($iterator as $subarr){ if(is_array($subarr) && array_key_exists('id',$subarr) && $subarr['id'] == $searchId){ $link = $subarr['link']; break; } } echo $link ? $link : 'not found';
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.21, 8.5.0 - 8.5.7
Contact-Town-1

preferences:
80.27 ms | 1250 KiB | 4 Q