Разделить строку на несколько массивов на основе переменного (инкрементного) разделителя
Я пытаюсь преобразовать некоторые данные (таблицу) из Википедии в формат HTML, используя API Википедии. На самом деле, я достаточно глубоко в этом разбираюсь и думаю, что я почти в конце (знаменитые последние слова...). Однако у меня возникают проблемы с преобразованием строки данных в массивы, основанные на рейтинге аэропорта. Данные показывают рейтинг самых загруженных аэропортов, и я хочу разделить результаты на массивы в зависимости от рейтинга (поэтому первый массив = первый аэропорт и его данные, второй = второй аэропорт и т. Д. И т. Д.).
Код:
$endpoint = 'https://en.wikipedia.org/w/api.php?';
$worlds_busiest_airports_url = 'action=parse&page=List_of_busiest_airports_by_passenger_traffic§ion=1&prop=wikitext&format=json';
$response = file_get_contents($endpoint . $worlds_busiest_airports_url);
$response_decoded = json_decode($response,true);
//echo "<pre>";
//print_r($response_decoded);
//echo "</pre>";
$data = $response_decoded['parse']['wikitext']['*'];
$start = strpos($data,'1.');
$data = substr($data,$start);
$strlen = strlen($data);
function index_data($data,$count,$strlen) {
while ($count <= 19) {
$count ++;
$delimiter = $count . '.';
}
}
index_data($data,0);
У меня есть разделитель, который должен увеличиваться при каждом достижении правильного числа. Я просто не знаю, как затем получить символы между этими разделителями и преобразовать их в массив. Я пытался использовать взорвать, но в конечном итоге возвращает отдельные символы.
Это формат данных (хотя очевидно, что есть больше записей:
1.|| {{flagicon|USA}} [[Hartsfield–Jackson Atlanta International
Airport]]||[[Atlanta]], [[Georgia (U.S. state)|Georgia]]|| United
States||ATL/KATL||104,171,935||{{steady}}||{{increase}}2.6%
|-
|2.|| {{flagicon|PRC}} [[Beijing Capital International Airport]]||[[Chaoyang
District, Beijing|Chaoyang]]-[[Shunyi District|Shunyi]], [[Beijing]]||
China||PEK/ZBAA||94,393,454||{{steady}}||{{increase}}5.0%
|-
и т.п.
Любой совет? Я также пытался использовать циклы, перебирая строку, пока не нашел разделитель, но опять же, я просто недостаточно хорошо разбираюсь в строковых функциях, чтобы что-то достичь.