Gori4ka
@Gori4ka
WordPress Developer

C чего нужно начать строить алгоритм генерации урлов из массива?

Есть массив:

$urlFragments = [
		'pozdravlenya',
		'na-angliyskom',
		[ 'lubimoy', 'lubimomu' ],
		'v-proze',
		[ 'korotkie', 'nekorotkie' ]
	];

И мне нужно из него создать разные ссылки:

Array
(
    [0] => pozdravlenya/na-angliyskom/lubimoy/v-proze/korotkie
    [1] => pozdravlenya/na-angliyskom/lubimoy/v-proze/nekorotkie
    [2] => pozdravlenya/na-angliyskom/lubimomu/v-proze/korotkie
    [3] => pozdravlenya/na-angliyskom/lubimomu/v-proze/nekorotkie
)

Не могу понять, как правильно сделать рекурсию.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
0xD34F
@0xD34F
function getUrls($parts, $acc = '') {
  $urls = [];

  if (count($parts)) {
    $part = array_shift($parts);
    if (!is_array($part)) {
      $part = [ $part ];
    }

    foreach ($part as $p) {
      array_push($urls, ...getUrls($parts, ($acc ? $acc.'/' : '').$p));
    }
  } else {
    $urls[] = $acc;
  }

  return $urls;
}


$urls = getUrls($urlFragments);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы