php请求接口的数据,拼接三级联动


我需要把接口返回的数据拼接成上图的方式,我写出来一个,但是请求接口三次直接卡死了。

对这方面不是很熟悉,希望各位指点迷津!谢谢

回答

卡死可能很多原因,不过单从代码来看,有以下错误需要修正:

foreach ($cityList as $key => $v) { // ... }

foreach ($cityTow as $key => $i) { // $key被重新定义了一次

// 里面这个$key变量,已经不是外层$cityList的$key了

$data[$key];

}

foreach ($cityThree as $key -> $t) { // $key又被重新定义了一次

// 同理,里面这个$key变量,也已经不是外层$cityList的$key了

$data[$key];

}

需要把各个循环的key,命名成$cityListKey, $cityTowKey, $cityThreeKey之类。
然后看问题是否解决,然后再进一步分析。

  1. 楼上已经说了,三个循环应该使用不一样的 key,否定会相互覆盖;
  2. 可以考虑先只返回第一级,在前端展示,用户点击后再去获取下一级;
  3. 可以考虑一次返回所有,再在返回的结果中使用递归获取父子关系;
  4. 其实一次请求多个结果也不一定很慢,具体快慢可以实测后再判断,很多时候程序比你想的要跑得快得多。

以上是 php请求接口的数据,拼接三级联动 的全部内容, 来源链接: utcz.com/a/27580.html

回到顶部