| 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; } Test data $data = file_get_contents ("http://restapi.ele.me/v1/restaurants?extras%5B%5D=food_activity&extras%5B%5D= Restaura Nt_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%5 b%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_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); |