2017-02-19 15 views
-1

Привет, спасибо за ваше время.Организация заполнения многомерного массива динамическими данными scape - PHP

Введение
Я пытаюсь скрести конкретный сайт, это заголовки и ссылки, связанные. Затем очистите связанные страницы для текста статьи. Я использую 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 функцию, поскольку я не вижу его как фактор в этой проблеме и не хочу загромождать этот вопрос. Я, конечно, добавлю это, нужно быть.

Закрытие и благодаря
Я буду очень признателен любое лицо, предоставляющим любые средства помощи, советы, ссылки, редактируют или другие подобные. Заранее большое спасибо.

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

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

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

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

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

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

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

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

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

Я вижу ваш намеченный выход в вашем примере, но я не вижу текущий выход. Можете ли вы это сделать? –

+0

Теперь были добавлены структуры массивов, спасибо, что напомнили мне. – user2304993

ответ

0

Как об объявлении индекса в первом цикле Еогеасп и с помощью, чтобы определить размещение подрешетки (ов). Таким образом, вы можете вложить свои последующие петли 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

@ user2304993 Если это достаточно решает вашу проблему, пожалуйста, наградите меня зеленым тиком (и, возможно, повышением для того, чтобы быть полезным). В противном случае, пожалуйста, укажите образец '$ item' и объясните, какие проблемы остаются. – mickmackusa

 Смежные вопросы

  • Нет связанных вопросов^_^