Для конкатенации циклов - PullRequest
0 голосов
/ 25 апреля 2018

Итак, у меня был один блок кода, который взял первое слово массива и обернул его в промежуток, но мне нужно сделать это с двумя разными заголовками.

Вместо дублирования одного и того же блока кода, которыйвыглядит ужасно, я хотел использовать цикл for, как объединить $ i с именем переменной или 'tytul1'?

for ($i = 1; $i <= 2; $i++) {
    $calloutTitleExplode1 = explode(' ',trim($callout['tytul1']));
    $calloutTitleSpan1 = '<span>'.$calloutTitleExplode1[0].'</span> ';
    $calloutTitleShifted1 = array_shift($calloutTitleExplode1);
    $calloutTitleRest1 = implode(" ", $calloutTitleExplode1);
    $callout['tytul1'] = $calloutTitleSpan1 . $calloutTitleRest1;

    $calloutTitleExplode2 = explode(' ',trim($callout['tytul2']));
    $calloutTitleSpan2 = '<span>'.$calloutTitleExplode2[0].'</span> ';
    $calloutTitleShifted2 = array_shift($calloutTitleExplode2);
    $calloutTitleRest2 = implode(" ", $calloutTitleExplode2);
    $callout['tytul2'] = $calloutTitleSpan2 . $calloutTitleRest2;
}

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете сделать это

for ($i = 1; $i <= 2; $i++) {
    ${"calloutTitleExplode$i"} = explode(' ',trim($callout["tytul$i"]));
    ${"calloutTitleSpan$i"} = '<span>'.${"calloutTitleExplode$i"}[0].'</span> ';
    ${"calloutTitleShifted$i"} = array_shift(${"calloutTitleExplode$i"});
    ${"calloutTitleRest$i"} = implode(" ", ${"calloutTitleExplode$i"});
    $callout["tytul$i"] = ${"calloutTitleSpan$i"} . ${"calloutTitleRest$i"};
}

Это создаст имя переменной динамически, используя $i

...