PHP如何遍历JSON数组动态生成表单下拉选项的循环实现问题
修改后的完整代码
function myfunction() { $request = wp_remote_get( 'https://shatner/wp-json/wpas-api/v1/enterprize-crew?type=name' ); if( is_wp_error( $request ) ) { return false; // 请求出错直接返回 } $body = wp_remote_retrieve_body( $request ); $data = json_decode( $body, true ); // 增加数据合法性判断,避免接口返回异常时报错 if (!is_array($data) || empty($data)) { return []; } $options = []; // 遍历数组,自动生成配置项 foreach ($data as $index => $item) { $options[] = [ "text" => $item['name'], "value" => $item['slug'], // 按原有硬编码的奇偶交替规则生成id,可根据需求自行调整 "id" => $index % 2 === 0 ? "id-1" : "id-2" ]; } return $options; }
核心修改说明
- 初始化空的
$options数组存储最终配置,避免数据为空时出现变量未定义错误 - 修正了原代码中错误的
foreach遍历语法,直接遍历拿到每一条数据的索引和对应内容 - 按照原硬编码的id交替规则,用索引取模的方式自动生成id字段,如果你有其他id生成规则,直接修改这行逻辑即可
- 每遍历一条数据就往配置数组中追加一条对应配置,循环结束后统一返回结果,不管接口返回的数组长度怎么变都能自动适配
- 额外增加了接口返回数据的合法性判断,避免接口返回异常时PHP抛出警告
内容的提问来源于stack exchange,提问作者Kevin Nutt
相关产品推荐
相关产品推荐

