Laravel продолжает давать мне: «Неопределенное смещение 2» - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь foreach l oop, но он продолжает давать мне "Неопределенное смещение 2".

Я пробовал также isset, тогда я получил "Неопределенное смещение 1"

Мой код:

foreach ($lineArrayResults as $lineArrayResultKey => $lineArrayResult)
{
    $currentFormFieldId = $submittedFormFields[$lineArrayResultKey]; // this line gives me error.
    if($currentFormFieldId > 0)
    {
        $newLeadDataArray[$currentFormFieldId] = [
            'field_name' => $formFields[$currentFormFieldId],
            'field_value' => $lineArrayResult
        ];
    }
}

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

ошибка неопределенное смещение означает, что массив исчерпал границы. размер массива меньше индекса, из которого вы пытаетесь получить объект.

Прежде всего убедитесь, что ваш массив $submittedFormFields содержит ключ переменной $lineArrayResultKey, если ключ массива генерируется динамически тогда попробуйте этот код

foreach ($lineArrayResults as $lineArrayResultKey => $lineArrayResult)
{
    if(!array_key_exists($lineArrayResultKey, $submittedFormFields)){
        continue;
    }

    $currentFormFieldId = $submittedFormFields[$lineArrayResultKey];
    if($currentFormFieldId > 0)
    {
        $newLeadDataArray[$currentFormFieldId] = [
            'field_name' => $formFields[$currentFormFieldId],
            'field_value' => $lineArrayResult
        ];
    }
}

0 голосов
/ 19 апреля 2020

добавить @ до $ попробуйте

foreach ($lineArrayResults as $lineArrayResultKey => $lineArrayResult)
{
    $currentFormFieldId = @$submittedFormFields[$lineArrayResultKey]; // insert @ before $
    if($currentFormFieldId > 0)
    {
        $newLeadDataArray[$currentFormFieldId] = [
            'field_name' => $formFields[$currentFormFieldId],
            'field_value' => $lineArrayResult
        ];
    }
}
...