Desplazamiento de cadena ilegal ‘clave’

Tengo este codigo

// Champion name and splash art $endpointChampion = file_get_contents("https://global.api.riotgames.com/api/lol/static-data/BR/v1.2/champion/".$championMastery."?api_key=MYKEY"); $jsonChampion = json_decode($endpointChampion, true); foreach ($jsonChampion as $champion) { if (isset($jsonChampion['key'])) { $championKey = $champion['key']; } } 

Pero esta variable $ championKey devuelve “o” y se muestran 3 advertencias en la pantalla:

Advertencia: ‘clave’ de desplazamiento de cadena ilegal en E: \ xampp \ htdocs \ riot \ index.php en la línea 41

También intenté validar la entrada, usando isset() pero parece que no funciona correctamente.

El $ championMastery se recupera aquí:

 $endpointMastery = file_get_contents("https://br.api.riotgames.com/championmastery/location/BR1/player/8083198/champions?api_key=MYKEY"); $jsonMastery = json_decode($endpointMastery, true); foreach ($jsonMastery as $mastery) { $championMastery = $mastery['championId']; $masteryLevel = $mastery['championLevel']; } 

captura de pantalla

Está recibiendo un error porque la API devuelve una matriz dimensional y $champion es el valor de cadena en foreach ($jsonChampion as $champion) . Lo siguiente puede ser arreglado:

 foreach ($jsonChampion as $champion) { if (isset($jsonChampion['key'])) { $championKey = $jsonChampion['key']; } } 

Por cierto, $jsonChampion es una matriz dimensional para que pueda recuperar $championKey sin escribir el bucle foreach de la siguiente manera:

 if(is_array($jsonChampion) && isset($jsonChampion['key'])){ $championKey = $jsonChampion['key']; }