首頁 > 後端開發 > php教程 > php获取json数据所有的节点路径,php获取json节点_PHP教程

php获取json数据所有的节点路径,php获取json节点_PHP教程

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-07-13 09:53:37
原創
894 人瀏覽過

php获取json数据所有的节点路径,php获取json节点

之前我们讲解过使用javascript获取json数据节点路径的问题,今天我们更进一步,讲解下php获取json数据所有的节点路径

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

<&#63;php

 

function iterTree($data) {

 $retData = array();

 $data = json_decode($data, true);

 if (!is_array($data) && empty($data)) {

 echo 'error !' ."n";

 } else {

 $queue = array();

 foreach ($data as $field => $value) {

 $queue[] = $field;

}

 $head = 0;

 $tail = count($queue);

 while ($head < $tail) {

 $field = $queue[$head++];

 $path = explode("/", $field);

 $tmpData = &$data;

 foreach ($path as $key => $ph) {

 $tmpData = &$tmpData[$ph];

}

 if (is_array($tmpData) && !empty($tmpData)) {

 $newField = $field;

 foreach ($tmpData as $curField => $curValue) {

 $newField = $field . '/' . $curField;

 $queue[$tail++] = $newField;

}

 } else {

 $retData[] = $field;

}

}

}

 return $retData;

}

 

//测试数据

$data = file_get_contents("http://restapi.ele.me/v1/restaurants&#63;extras%5B%5D=food_activity&extras%5B%5D=restaurant_activity&extras%5B%5D=certification&fields%5B%5D=id&fields%5B%5D=name&fiel

ds%5B%5D=phone&fields%5B%5D=promotion_info&fields%5B%5D=name_for_url&fields%5B%5D=flavors&fields%5B%5D=is_time_ensure&fields%5B%5D=is_premium&fields%5B%5D=image_path&fields%5B%5D=rating&fie

lds%5B%5D=is_free_delivery&fields%5B%5D=minimum_order_amount&fields%5B%5D=order_lead_time&fields%5B%5D=is_support_invoice&fields%5B%5D=is_new&fields%5B%5D=is_third_party_delivery&fields%5B%

5D=is_in_book_time&fields%5B%5D=rating_count&fields%5B%5D=address&fields%5B%5D=month_sales&fields%5B%5D=delivery_fee&fields%5B%5D=minimum_free_delivery_amount&fields%5B%5D=minimum_order_des

cription&fields%5B%5D=minimum_invoice_amount&fields%5B%5D=opening_hours&fields%5B%5D=is_online_payment&fields%5B%5D=status&fields%5B%5D=supports&fields%5B%5D=in_delivery_area&geohash=wx4g07

j0w1v7&is_premium=0&limit=1000&offset=24&type=geohash");

 

$ret = iterTree($data);

print_r($ret);

登入後複製

以上所述就是本文的全部内容了,希望大家能够喜欢。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000255.htmlTechArticlephp获取json数据所有的节点路径,php获取json节点 之前我们讲解过使用javascript获取json数据节点路径的问题,今天我们更进一步,讲解下php获...
相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
怎麼學好php
來自於 1970-01-01 08:00:00
0
0
0
PHP擴充intl
來自於 1970-01-01 08:00:00
0
0
0
php數據獲取?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板