Организация заполнения многомерного массива динамическими данными

Вступление
Я пытаюсь почистить определенный сайт для его заголовков и связанных ссылок. Затем очистите связанные страницы для текста статьи. Я использую CURL и simple_html_dom.php.

проблема
Я пытаюсь упорядочить все эти данные; заголовок, ссылка и текст статьи, в многомерном массиве со следующей структурой:

Array
(
[0] => Array
(
[0] => title 1
[1] => link 1
[2] => text 1
)
[1] => Array
(
[0] => title 2
[1] => link 2
[2] => text 2
)
)

Но как бы я ни пытался это сделать, структура совершенно неправильная и неправильная. Как я могу сохранить соответствующий текст с его ссылкой и заголовком?

Код

<?php
$results_page = curl($url); // Downloading the results page using curl() funtion
$html = new simple_html_dom();
$html->load($results_page);
$items = $html->find('h2[class=artTitle]');  // Exploding each h2
foreach($items as $post) {
$headlines[] = array($post->children(0)->innertext); // Saving h2 text
$url_results[] = ($post->children(0)->href); // Saving h2 link
}
foreach($url_results as $url_result) {
$results_page = curl($url_result);
$html->load($results_page);
foreach($html->find('#articleText p[!class]') as $post) // Finding all p elements inside container
$articles[] = array($post->plaintext); // Adding p elements to array
}
?>

Я исключил свою функцию cURL, так как не рассматриваю ее как фактор в этой проблеме и не хочу загромождать вопрос. Я, конечно, добавлю его, если понадобится.

Ниже приведены мои текущие структуры массива:

Текущая структура массива заголовков $:

Array
(
[0] => Array
(
[0] => Headline 1¨
)
[1] => Array
(
[0] => Headline 2¨
)
)

Текущая структура массива $ url_results:

Array
(
[0] => Link 1
[1] => Link 2
)
Array

Текущая структура массива $ article:

Array
(
[0] => Array
(
[0] => Paragraph 1 Text 1
)

[1] => Array
(
[0] => Paragraph 2 Text 1
)

[2] => Array
(
[0] => Paragraph 1 Text 2
)
)

-1

Решение

Как насчет объявления индекса в первом цикле foreach и использования его для определения размещения подмассива (ов). Таким образом, вы можете вложить ваши последующие циклы foreach и продолжить сборку массива.

foreach($items as $index=>$post) {
$desired_array[$index][0]=$post->children(0)->innertext; // Saving h2 text
$url_results=$post->children(0)->href; // Saving h2 link
foreach($url_results as $url_result) {
$results_page=curl($url_result);
$html->load($results_page);
foreach($html->find('#articleText p[!class]') as $post) // Finding all p elements inside container
$desired_array[$index][1]=""; //I don't know where $link comes from
$desired_array[$index][2]=array($post->plaintext);
}
}
}

Я не смог проверить это, потому что у меня нет образца $items работать с.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector