如何在PHP中将json数据转换为可访问的数组?

时间:2013-03-27 09:31:40

标签: php arrays json

我从Google API获取JSON字体列表,我想在我的PHP应用程序中使用它。我需要一种方法来更轻松地访问此JSON对象。例如,我希望能够轻松地调用字体及其属性:

$font['abc']['variants']

......等等。

所以JSON看起来像这样:

$fonts = '
{
 "kind": "webfonts#webfontList",
 "items": [
  {
   "kind": "webfonts#webfont",
   "family": "Yesteryear",
   "variants": [
    "regular"
   ],
   "subsets": [
    "latin"
   ]
  },
  {
   "kind": "webfonts#webfont",
   "family": "Zeyada",
   "variants": [
    "regular"
   ],
   "subsets": [
    "latin"
   ]
  }
]
}
';

我正在使用它将其解析为数组:

$fonts = json_decode( $fonts, true );
$var_dump( $fonts['items'] );

这样的var转储会显示:

array (size=2)
  0 => 
    array (size=4)
      'kind' => string 'webfonts#webfont' (length=16)
      'family' => string 'Yesteryear' (length=10)
      'variants' => 
        array (size=1)
          0 => string 'regular' (length=7)
      'subsets' => 
        array (size=1)
          0 => string 'latin' (length=5)
  1 => 
    array (size=4)
      'kind' => string 'webfonts#webfont' (length=16)
      'family' => string 'Zeyada' (length=6)
      'variants' => 
        array (size=1)
          0 => string 'regular' (length=7)
      'subsets' => 
        array (size=1)
          0 => string 'latin' (length=5)

所以使用上面的数组,我无法轻松检索出我想要的数据。所以我不确定这是否意味着我必须重建阵列,如果是,那该怎么办?

感谢您的光临。

3 个答案:

答案 0 :(得分:3)

尝试获取值:在这里,您将获得items

中所有数组的值
foreach($fonts['items'] as $val){

    echo $val['kind'];
    echo $val['family'];

    print_r($val['variants']);
    echo "======================<br>";
}

答案 1 :(得分:0)

我认为你正在寻找这样的事情: Example

答案 2 :(得分:0)

希望这段代码能帮到你

$res1=json_decode($fonts,true);
$res2=$res1['items'];
$count=count($res2);
for($i=0;$i< $count;$i++)
{
    echo $res2[$i]['variants'][0];
}