簡體   English   中英

將Json String轉換為PHP數組,然后使用php array

[英]Converting Json String into PHP array then using php array

我是json和php的新手,並且在php字符串中遇到了json的一些問題

我的json字符串看起來像這樣

{"status":"OK","cards":
[{"id":100001,"name":"batman","image":11111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-08-15T11:37:07Z"},
{"id":100002,"name":"superman","image":111111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-08-15T12:30:09Z"},
{"id":100003,"name":"catwoman","image":1111111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-08-15T12:39:42Z"},
{"id":100004,"name":"bane","image":1111111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-09-08T12:56:04Z"}
]}

到目前為止,我已經創建了我的字符串

$json_raw = '{"status":"OK","cards": [{"id":100001,"name": .....

解碼json

$arr = json_decode($json_raw, TRUE);

我var_dump($ arr);

然后它返回

array(2) { ["status"]=> string(2) "OK" ["cards"]=> array(4) { [0]=> array(8) { ["id"]=> int(100001) ["name"]=> string(6) "batman" ["image"]=> int(11111) ["size"]=> int(75) ["region_id"]=> int(1) ["locked"]=> bool(false) ["status"]=> string(6) "active" ["created_at"]=> string(20) "2013-08-15T11:37:07Z" } [1]=> array(8) { ["id"]=> int(100002) ["name"]=> string(8) "superman" ["image"]=> int(111111) ["size"]=> int(75) ["region_id"]=> int(1) ["locked"]=> bool(false) ["status"]=> string(6) "active" ["created_at"]=> string(20) "2013-08-15T12:30:09Z" } [2]=> array(8) { ["id"]=> int(100003) ["name"]=> string(8) "catwoman" ["image"]=> int(1111111) ["size"]=> int(75) ["region_id"]=> int(1) ["locked"]=> bool(false) ["status"]=> string(6) "active" ["created_at"]=> string(20) "2013-08-15T12:39:42Z" } [3]=> array(8) { ["id"]=> int(100004) ["name"]=> string(4) "bane" ["image"]=> int(1111111) ["size"]=> int(75) ["region_id"]=> int(1) ["locked"]=> bool(false) ["status"]=> string(6) "active" ["created_at"]=> string(20) "2013-09-08T12:56:04Z" } } } 

現在我要做的就是能夠使用這些數據

例如,如果名稱= batman,則

我知道這是一個愚蠢的問題,但我正在努力:(

預先感謝

第二個參數為TRUE json_decode()提供了一個關聯數組。 您需要訪問正確的索引才能執行所需的操作。

要以良好的格式列出完整的關聯數組,可以執行以下操作:

echo '<pre>', print_r($arr), '</pre>';

現在,要訪問數組中的name

$man = $arr['cards'][0]['name'];

要檢查它是否是Batman (是的!):

if( isset($man) && $man == 'batman' ) {
    # code ...
}

要獲取所有相似名稱的名稱:

$man = $json['cards']['0']['name'];
for ($i=0; $i < count($json['cards']); $i++) { 
    echo $json['cards'][$i]['name']."\n";
}

現場觀看!

當你得到數組

 $arr = json_decode($json_raw, TRUE);

然后檢查卡密鑰是否存在

if(array_key_exists('cards', $arr)){
  foreach($arr['cards'] as $key=>$val){

  echo $key; ///name, id..
  echo $val; /// batman,...
  if($key == 'name' && $val =='batman'){
      //-------do your stuff
    }
  }
}

嘗試:

$cards = $arr['cards'];
foreach($cards as $card) {
    if($card['name'] == 'batman') echo 'Hello batman!';
}

編輯:

好的,所以這對我來說使用上面的代碼有效,如果需要,請自己嘗試:

<?php

$json_raw = '{"status":"OK","cards":
[{"id":100001,"name":"batman","image":11111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-08-15T11:37:07Z"},
{"id":100002,"name":"superman","image":111111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-08-15T12:30:09Z"},
{"id":100003,"name":"catwoman","image":1111111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-08-15T12:39:42Z"},
{"id":100004,"name":"bane","image":1111111,"size":75,"region_id":1,"locked":false,"status":"active","created_at":"2013-09-08T12:56:04Z"}
]}';


$arr = json_decode($json_raw, TRUE);

$cards = $arr['cards'];
foreach($cards as $card) {
    if($card['name'] == 'batman') echo 'Hello batman!';
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM