3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tree = array( array ( 'id' => 1, 'structure' => 1, 'parent' => 0, 'slug' => 'medicinskaya-ge', 'child' => array ( 2 => array ( 'id' => 2, 'structure' => 1.1, 'parent' => 1, 'slug' => 'dnk-diagnostika', 'child' => array ( 3 => array ( 'id' => 3, 'structure' => '1.1.1', 'parent' => 2, 'slug' => 'dnk-diagnostika', 'datafile' => 'ssz', 'template' => 'ssz', ), 4 => array ( 'id' => 4, 'structure' => '1.1.2', 'parent' => 2, 'slug' => 'dnk-diagnostika', 'child' => array ( 5 => array ( 'id' => 5, 'structure' => '1.1.2.1', 'parent' => 4, 'slug' => 'dnk-diagnostika', ), 6 => array ( 'id' => 6, 'structure' => '1.1.2.2', 'parent' => 4, 'slug' => 'testirovanie-ge', ), 7 => array ( 'id' => 7, 'structure' => '1.1.2.3', 'parent' => 4, 'slug' => 'dnk-diagnostika', ), ), ), 8 => array ( 'id' => 8, 'structure' => '1.1.3', 'parent' => 2, 'slug' => 'dnk-diagnostika', ), 9 => array ( 'id' => 9, 'structure' => '1.1.4', 'parent' => 2, 'slug' => 'texnologiya-kol', ), ), ), ), ) ); function getSlugData(string $slug, array $data): array { foreach ($data as $row) { if ($row['slug'] === $slug) { return $row; } if (isset($row['child'])) { $deeper = getSlugData($slug, $row['child']); if ($deeper) { return $deeper; } } } return []; } var_export( getSlugData('testirovanie-ge', $tree) ); echo "\n---\n"; var_export( getSlugData('texnologiya-kol', $tree) ); echo "\n---\n"; var_export( getSlugData('dnk-diagnostika', $tree) ); echo "\n---\n"; var_export( getSlugData('foo', $tree) );

preferences:
27.49 ms | 404 KiB | 5 Q