@skornew33

E_NOTICE: type 8 -- Undefined offset: -1 -- at line 11. В чем проблема?

Вот код:
<?php

$text = "{Al|La}la bl{bl|l b|lbl}lb. Cl{cl|lc}lc.";
$result = "";

preg_match_all("#[\{]{1}(.[^\}]*)[\}]{1}#", $text, $stringArray);

$attachmentsArray = $stringArray;

function replacement ($count, $attachmentsArray, $result) {
    $tok = strtok($attachmentsArray[1][$count - 1], "|");
    
    while ($tok !== false) {
        $replaceArray[$count - 1] = $tok;
        
        $tok = strtok("|");
        
        if ($count > 0) {
            replacement($count - 1, $attachmentsArray, $result);
        } else {
            $replaceArray = array_reverse($replaceArray);
            $result .= str_replace($attachmentsArray[0], $replaceArray, $text); $result .= "<br>";
            $replaceArray = array_reverse($replaceArray);
        }
    }
}

replacement(count($attachmentsArray[1]), $attachmentsArray, $result);

//$result .= str_replace($stringArray[0], replacement(count($stringArray[1])) , $text); $result .= "<br>";

echo $text . "<br><br>"; echo $result; echo "<br>";

/*$tok = strtok($stringArray[1][1], "|");

while ($tok !== false) {
    echo "Word = $tok<br>";
    $tok = strtok("|");
}*/

?>

А вот результат:
5e8781cfa87e4699730265.png
Не могу понять, что это значит, что неверно и что делать?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Код не запускал, но скорее всего в строке
replacement(count($attachmentsArray[1]), $attachmentsArray, $result);

`$attachmentsArray[1]` пустой. Поэтому внутрь функции передаётся $count=0, ну и дальше обращение к массиву с индексом $count - 1, то есть -1.

Проверьте, что preg_replace_all возвращает то, что нужно. И добавьте условие с проверкой до вызова функции, что $attachmentsArray именно того формата, что вам нужен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 15:51
3000 руб./за проект
25 апр. 2024, в 15:31
70000 руб./за проект
25 апр. 2024, в 15:26
15000 руб./за проект