尝试使用 foreach() 循环从解码的 JSON 中返回 Google Fonts系列,但我只得到最后一个系列,而不是全部。我一直在挣扎,谷歌搜索,尝试了我知道/发现的一切,没有结果!这是代码,我在 WordPress 中使用它。<?php/** * Get Google Fonts. */public function get_google_fonts() { $google_api = 'https://www.googleapis.com/webfonts/v1/webfonts?key=MY-API-KEY'; $font_content = wp_remote_get( $google_api, array( 'sslverify' => false ) ); $content = json_decode( $font_content['body'], true ); $items = $content['items']; // I've tried (array) $content['items']; // I've tried $i = 0; // I've tried $families = array(); foreach ( $items as $key => $value ) { $families = $value['family']; BugFu::log( $families, false ); // Correct returning all families. // I've tried $i++; } return array( $families ); // OR return $families; Returning last family.}非常感谢任何帮助。在此先感谢您的时间 :)
3 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
$families每次循环时都会覆盖变量:
$families = $value['family'];
为了向数组添加元素,您需要这样做:
$families[] = $value['family'];
这样,每次循环时,$value['family']都会将其添加到$families数组中。
编辑
$families在foreach循环之前将变量初始化为空数组可能也不错。因为如果您的 json 中没有任何值,该函数将返回null.
$families = [];
foreach ($items as $key => $value) { ... }
return $families;
- 3 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消