24

からへのJSONデータ型の配列を返しました。以前は連想配列に変換していましたが、連想配列を使用して使用しようとすると、エラーが発生します。返されるデータは次のようになります。javascriptPHPjson_decode($data, true)index"Undefined index"

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" }  

どうすればそのような配列にアクセスできますPHPか?提案をありがとう。

4

6 に答える 6

67

true2番目のパラメータとしてに渡すのでjson_decode、上記の例では、次のようなことを行ってデータを取得できます。

$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..

true2番目のパラメーターとして渡さない場合は、json_decode代わりにオブジェクトとして返されます。

echo $myArray[0]->id;
于 2013-02-23T18:28:52.100 に答える
7
$data = json_decode($json, true);
echo $data[0]["c_name"]; // "John"


$data = json_decode($json);
echo $data[0]->c_name;      // "John"
于 2013-02-23T18:28:51.313 に答える
3
$data = json_decode(...);
$firstId = $data[0]["id"];
$secondSeatNo = $data[1]["seat_no"];

ちょうどこのような :)

于 2013-02-23T18:28:34.813 に答える
1

2番目のパラメーターとしてtrueをに渡すjson_decodeと、上記の例では、次のようなことを行ってデータを取得できます。

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>
于 2017-03-09T13:10:11.843 に答える
1

これはあなたを助けるかもしれません!

$latlng='{"lat":29.5345741,"lng":75.0342196}';
$latlng=json_decode($latlng,TRUE); // array
echo "Lat=".$latlng['lat'];
echo '<br/>';
echo "Lng=".$latlng['lng'];
echo '<br/>';



$latlng2='{"lat":29.5345741,"lng":75.0342196}';
$latlng2=json_decode($latlng2); // object
echo "Lat=".$latlng2->lat;
echo '<br/>';
echo "Lng=".$latlng2->lng;
echo '<br/>';
于 2019-05-01T05:25:42.790 に答える
0

複数次元の配列にループする場合は、次のようにforeachを使用できます。

foreach($data as $users){
   foreach($users as $user){
      echo $user['id'].' '.$user['c_name'].' '.$user['seat_no'].'<br/>';
   }
}
于 2014-05-26T11:49:45.537 に答える