J'ai renvoyé un tableau de type JSON
de javascript
à PHP
, j'ai utilisé json_decode($data, true)
pour le convertir en tableau associatif, mais lorsque j'essaie de l'utiliser à l'aide de index
, je reçois l'erreur "Undefined index"
. Les données renvoyées ressemblent à ceci
array(14) { [0]=> array(4) { ["id"]=> string(3) "597" ["c_name"]=> string(4) "John" ["next_of_kin"]=> string(10) "5874594793" ["seat_no"]=> string(1) "4" }
[1]=> array(4) { ["id"]=> string(3) "599" ["c_name"]=> string(6) "George" ["next_of_kin"]=> string(7) "6544539" ["seat_no"]=> string(1) "2" }
[2]=> array(4) { ["id"]=> string(3) "601" ["c_name"]=> string(5) "Emeka" ["next_of_kin"]=> string(10) "5457394839" ["seat_no"]=> string(1) "9" }
[3]=> array(4) { ["id"]=> string(3) "603" ["c_name"]=> string(8) "Chijioke" ["next_of_kin"]=> string(9) "653487309" ["seat_no"]=> string(1) "1" }
S'il vous plaît, comment puis-je accéder à un tel tableau dans PHP
? Merci pour toute suggestion.
Lorsque vous transmettez true
en tant que second paramètre à json_decode
, dans l'exemple ci-dessus, vous pouvez extraire des données en effectuant une opération similaire à:
$myArray = json_decode($data, true);
echo $myArray[0]['id']; // Fetches the first ID
echo $myArray[0]['c_name']; // Fetches the first c_name
// ...
echo $myArray[2]['id']; // Fetches the third ID
// etc..
Si vous ne passez PAS true
comme second paramètre à json_decode
, il le renverra sous forme d'objet:
echo $myArray[0]->id;
$data = json_decode($json, true);
echo $data[0]["c_name"]; // "John"
$data = json_decode($json);
echo $data[0]->c_name; // "John"
$data = json_decode(...);
$firstId = $data[0]["id"];
$secondSeatNo = $data[1]["seat_no"];
Juste comme ça :)
Lorsque vous transmettez true en tant que second paramètre à json_decode
, dans l'exemple ci-dessus, vous pouvez récupérer des données en effectuant une opération similaire à:
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
Quand vous voulez boucler dans un tableau à plusieurs dimensions, vous pouvez utiliser foreach comme ceci:
foreach($data as $users){
foreach($users as $user){
echo $user['id'].' '.$user['c_name'].' '.$user['seat_no'].'<br/>';
}
}