ホームページ >バックエンド開発 >PHPチュートリアル >PHP は json データのすべてのノード パスを取得します_PHP チュートリアル

PHP は json データのすべてのノード パスを取得します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:53:51852ブラウズ

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

関数 iterTree($data) {

$retData = array();

$data = json_decode($data, true);

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

エコー 'エラー!' ."n";

} 他 {

$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;

}

} 他 {

$retData[] = $フィールド;

}

}

}

$retData を返す;

}

//テストデータ

$data = file_get_contents("http://restapi.ele.me/v1/restaurants?extras%5B%5D=food_activity&extras%5B%5D=restaura

nt_activity&extras%5B%5D=認証&フィールド%5B%5D=id&フィールド%5B%5D=名前&フィールド

ds%5B%5D=電話&フィールド%5B%5D=プロモーション情報&フィールド%5B%5D=URLの名前&フィールド%5B%5D=フレーバー&フィールド%

5B%5D=is_time_ensure&fields%5B%5D=is_premium&fields%5B%5D=image_path&fields%5B%5D=評価&ファイル

lds%5B%5D=is_free_delivery&fields%5B%5D=minimum_order_amount&fields%5B%5D=order_lead_time&fields%5

B%5D=is_support_invoice&fields%5B%5D=is_new&fields%5B%5D=is_third_party_delivery&fields%5B%

5D=予約時間&フィールド%5B%5D=評価数&フィールド%5B%5D=住所&フィールド%5B%5D=月売上&フィールド%

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_pay

ment&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.comtru​​ehttp://www.bkjia.com/PHPjc/1000071.html技術記事 PHP は JSON データのすべてのノード パスを取得します。以前、JavaScript を使用して JSON データのノード パスを取得する問題について説明しました。今日はさらに一歩進んで、PHP がどのように JSON データのすべてのノード パスを取得するかを説明します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。