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) );
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.15, 8.5.0
array ( 'id' => 6, 'structure' => '1.1.2.2', 'parent' => 4, 'slug' => 'testirovanie-ge', ) --- array ( 'id' => 9, 'structure' => '1.1.4', 'parent' => 2, 'slug' => 'texnologiya-kol', ) --- 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', ), ), ) --- array ( )

preferences:
176.28 ms | 411 KiB | 5 Q