0

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

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

... ETC。

所以 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 dump 会显示:

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)

所以使用上面的数组,我不能轻易地检索到我想要的数据。所以我不确定这是否意味着我必须重建阵列,如果是,如何重建?

感谢您的关注。

4

3 回答 3

3

试试这个来获取值:在这里你会得到里面所有数组的值items

foreach($fonts['items'] as $val){

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

    print_r($val['variants']);
    echo "======================<br>";
}
于 2013-03-27T09:35:32.980 回答
0

I think you are looking for something like this: Example

于 2013-03-27T09:39:46.800 回答
0

希望这个片段可以帮助你

$res1=json_decode($fonts,true);
$res2=$res1['items'];
$count=count($res2);
for($i=0;$i< $count;$i++)
{
    echo $res2[$i]['variants'][0];
}
于 2013-03-27T09:49:07.730 回答