Не удается получить доступ к значению в массиве PHP через индекс - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь получить доступ к элементу ассоциативного массива, но он дает ошибку неопределенного индекса.Я убедился, что мой индекс правильный и код написан нормально, но он добавляет алфавит «А» в конце индекса «Жанр» сам по себе.Я не знаю, откуда это.Ниже приведен код, ошибка и дамп:

if($Row){
    $Data = unserialize($Row->Data);
    $Last = array();
    unset($Path[0]);
    foreach($Path as $Key=>$name){
        echo $name;
        $Last = $Data[$name];
    }
    return $Last;
}

Ошибка, которую я получил

ErrorException (E_ERROR) Неопределенный индекс: GenreA (представление: C: \ xampp \ htdocs)......)

dd($Data,$Path);

Дает:

array:7 [▼
    "Regions" => array:10 [▶]
    "Country" => array:241 [▶]
    "Languages" => array:106 [▶]
    "Category" => array:2 [▶]
    "SubCategory" => array:2 [▶]
    "Genre" => array:2 [▶]
    "SubGenre" => array:2 [▶]
] 

array:1 [▼
    1 => "Genre"
]

enter image description here

Изображение отладки enter image description here

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Я использовал цикл For вместо foreach, проблема решена, но я все еще не могу определить невидимое 'A', если я использую foreach, следующий код работал отлично.

  if($Row){
            $Data = unserialize($Row->Data);
            $Last = array();
            unset($Path[0]);
           for($i=1;$i<sizeof($Path);$i++)
           {
               $Last=$Data[$Path[$i]];
           }
            /* foreach($Path as $Key=>$name){


                $Last = $Data[$name];
            }*/


            return $Last;
        }
0 голосов
/ 29 сентября 2018

Я думаю, что не нужно для каждого цикла, просто напишите так, я надеюсь, что это будет работать

end($Data);  
$last = key($Data);  
$last_element = $Data[$last];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...