@valves

Как улучшить код for?

Там в коде еще ошибка где функция if начинается, не могу понять в чем проблема.
$figures = preg_split("-[\W]-u", "1 2 3 4");
$bas = $i = [];

for ($a = 0; $a <= count($figures); $a++) {
    for ($b = 0; $b < $a; $b++) {
        $c = array(implode(' ', array_slice($figures, $b, count($figures) - $a + 1)));

        if (!isset($i[$c])) {
            $i[$c] = array_push($bas, $c);
        }
    }
}

print_r($bas);

нужно доделать код до такого состояния
Array
(
    [0] => Array
        (
            [0] => 1 2 3 4
        )

    [1] => Array
        (
            [0] => 1 2 3
	    [1] => 4
        )

    [2] => Array
        (
	    [0] => 1
            [1] => 2 3 4
        )

    [3] => Array
        (
            [0] => 1 2
	    [1] => 3 4
        )

    [4] => Array
        (
	    [0] => 1
            [1] => 2 3
	    [2] => 4
        )

    [5] => Array
        (
	    [0] => 1 2
            [1] => 3 4
        )

    [6] => Array
        (
            [0] => 1
        )

    [7] => Array
        (
            [0] => 2
        )

    [8] => Array
        (
            [0] => 3
        )

    [9] => Array
        (
            [0] => 4
        )

)
  • Вопрос задан
  • 2218 просмотров
Пригласить эксперта
Ответы на вопрос 5
nazarpc
@nazarpc
Open Source enthusiast
Для начала замените однобуквенные переменные на нормальные.
Ответ написан
Комментировать
@bromzh
Drugs-driven development
Бери дебаггер в руки и построчно выполняй всё, ошибку скорее всего обнаружишь намного быстрее, чем чужие люди вникнут в твой код и исправят его.
Можно обойтись низкобюджетным вариантом дебагера - выводить все значения на стандартный вывод или ещё куда-нибудь.
Ответ написан
Комментировать
itvdonsk
@itvdonsk
Android Developer
$i[$c]
Вы пихаете в ключ массив?
Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании будет генерироваться предупреждение: Недопустимый тип смещения (Illegal offset type).
Ответ написан
Комментировать
Xakephp
@Xakephp
Вопрос давно решен.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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