@artem_atlas

Как вывести следующий элемент в массиве?

У меня есть массив:
$arr = [
  ['id' => 1, 'sub_id' => null, 'name'=> 'name1'],
  ['id' => 2, 'sub_id' => 1,    'name'=> 'name2'],
  ['id' => 3, 'sub_id' => 1,    'name'=> 'name3'],
  ['id' => 4, 'sub_id' => null, 'name'=> 'name4'],
  ['id' => 5, 'sub_id' => 2,    'name'=> 'name5'],
  ['id' => 6, 'sub_id' => 4,    'name'=> 'name6'],
];

С колонкой sub_id которая устанавливает родительский элемент:
- name1
-- name2
--- name5
-- name3
- name4
-- name6
Есть переменная ($element_id) с текущим id элемента. Нужно получить id следующего элемента. Например: если $element_id = 1, то должен вернуться 2. Если $element_id = 2, то должен вернуться 5. Те указываня на id элемента name1 выводится id name2, при указании на name2 ыводится name5, при указании на name5 выводится name3, при указании на name3 выводится name4, при указании на name4 выводится name6.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hello_my_name_is_dany
Backend Developer (Node.js, PHP, C#)
В следующий раз пишите нормально, что вы хотите. Я два раза переписывал код, чтобы понять, что вы хотите. А хотите вы имя первого саб-элемента.
function getSubName($arr, $elementId) {
    foreach ($arr as $element) {
        if ($element['sub_id'] === $elementId) return $element['name'];
    }

    return false;
}

echo getSubName($arr, 1) . "\n";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы