Задать вопрос
@Elidomadto

Как узнать, является ли ключ массива последним?

Здравствуйте!
Имеется такой код:
class Handler {
	public static function go_to($url, $parametrs = NULL)
	{
		if (isset($parametrs))
		{
		foreach ($parametrs as $key => $value)
		{
			if (count($parametrs) > 1)
			{
					$params .= $key.'='.$value.'&';
			}
			else
			{
				$params = $key.'='.$value;
			}
		}
		}
		if (isset($parametrs))
		{
			return header('Location: /'.$url.'?'.$params.'');
			exit();
		}
		else
		{
			return header('Location: /'.$url.'');
			exit();
			}
	}
}

Использование:
<?php
Handler::go_to('index', array('succcess' => '20', 'r' => '29312'));
?>

Предназначен он для редиректа по ссылке, указанной в переменной $url с указанными параметрами $params. Проблема в том, что в конце url в адресной строке остаётся &(что не удивительно). Хочу его убрать. Предполагаю, что для этого нужно проверять if-ом, является ли ключ массива последним. Но как это осуществить?
  • Вопрос задан
  • 2415 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Откройте для себя: http_build_query
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mzcoding
@mzcoding
Web-Разработка
С помощью функции end()

if (count($parametrs) > 1){
         if(end($parametrs) === $value)
           $params .= $key.'='.$value;
         else
          $params .= $key.'='.$value.'&';
      }
Ответ написан
Prosto
@Prosto
Можно через implode()?

foreach ($parametrs as $key => $value)
{
$params = implode('&', array($params, $key.'='.$value));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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