Ninazu
@Ninazu

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

С поиском значения все просто. array_search.
А вот с поиском ключа сложнее. Есть ли встроенная функция или только самому функционал писать?

Пока что так. Но мне не очень нравится подобное решение
function searchNextKey($keyName, $sourceArray) {
	if (array_key_exists($keyName, $sourceArray)) {
		while (key($sourceArray) !== $keyName) {
			next($sourceArray);
		}

		next($sourceArray);
		$nextScenario = key($sourceArray);

		return $nextScenario;
	}

	return null;
}
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
alsopub
@alsopub
Как вариант - array_keys, в них array_search, +1 к результату = следующий ключ.
Не уверен на счет сохранения последовательности при взятии array_keys.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ninazu
@Ninazu Автор вопроса
Алексей: Спасибо. Последовательность не слетает.

function searchKey($keyName, $sourceArray) {
	if (!(is_string($keyName) || is_numeric($keyName)) || !isset($sourceArray[$keyName])) {
		return null;
	}

	$keys = array_keys($sourceArray);
	$nextScenario = @$keys[array_search($keyName, $keys) + 1];

	return $nextScenario;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект