Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于显示2组数据的Foreach循环配置_Php_Loops_Foreach_Format - Fatal编程技术网

Php 用于显示2组数据的Foreach循环配置

Php 用于显示2组数据的Foreach循环配置,php,loops,foreach,format,Php,Loops,Foreach,Format,我使用简单的HTMLDOM从返回结果页面的网页中获取数据。我想把它格式化为标题,然后是描述。现在我正在使用以下代码: <?php include('simple_html_dom.php'); $html = file_get_html('https://www.example.com?q=randomquery'); foreach($html->find('div#resultscontainer') as $data) //for each title foreach($d

我使用简单的HTMLDOM从返回结果页面的网页中获取数据。我想把它格式化为标题,然后是描述。现在我正在使用以下代码:

<?php
include('simple_html_dom.php');
$html = file_get_html('https://www.example.com?q=randomquery');

foreach($html->find('div#resultscontainer') as $data)

//for each title
foreach($data->find('h3') as $title) {
//for each description
foreach($data->find('span.st') as $desc) {
//format code
    echo "<div class='result'>";
    echo $title;
    echo $desc;
    echo "</div>";
    }
}

?>

第二个foreach检查完整的HTML文件,而不是$title下面的内容

你应该这样做:

<?php
//for each title
foreach($data->find('h3') as $title) {
//for each description
foreach($title->parent->find('span.st') as $desc) {
//format code
    echo "<div class='result'>";
    echo $title->plaintext;
    echo $desc->plaintext;
    echo "</div>";
    }
}
foreach($html->find('div#resultscontainer') as $data) {
   $titlesAndDescriptions = array();

   // for each title
   foreach($data->find('h3') as $key => $title) {
      $titlesAndDescriptions[$key] = array('title' => $title);
   }

   // for each description
   foreach($data->find('span.st') as $key => $desc) {
      $titlesAndDescriptions[$key]['description'] = $desc;
   }

   foreach ($titlesAndDescriptions as $titleAndDescription) {
      echo "<div class='result'>";
      echo $titleAndDescription['title'];
      echo $titleAndDescription['description'];
      echo "</div>";
   }
}
像这样尝试:

<?php
//for each title
foreach($data->find('h3') as $title) {
//for each description
foreach($title->parent->find('span.st') as $desc) {
//format code
    echo "<div class='result'>";
    echo $title->plaintext;
    echo $desc->plaintext;
    echo "</div>";
    }
}
foreach($html->find('div#resultscontainer') as $data) {
   $titlesAndDescriptions = array();

   // for each title
   foreach($data->find('h3') as $key => $title) {
      $titlesAndDescriptions[$key] = array('title' => $title);
   }

   // for each description
   foreach($data->find('span.st') as $key => $desc) {
      $titlesAndDescriptions[$key]['description'] = $desc;
   }

   foreach ($titlesAndDescriptions as $titleAndDescription) {
      echo "<div class='result'>";
      echo $titleAndDescription['title'];
      echo $titleAndDescription['description'];
      echo "</div>";
   }
}
foreach($html->find('div#resultcontainer')作为$data){
$titlesAndDescriptions=array();
//每个标题
foreach($data->find('h3')作为$key=>$title){
$titlesAndDescriptions[$key]=数组('title'=>$title);
}
//每种描述
foreach($data->find('span.st')作为$key=>$desc){
$titlesAndDescriptions[$key]['description']=$desc;
}
foreach($titleAndDescriptions作为$titleAndDescription){
回声“;
echo$titleAndDescription['title'];
echo$titleAndDescription['description'];
回声“;
}
}

您应该至少添加有问题的标记,或者添加live url(如果可以的话),没有人会发现这段代码有什么问题code@Ghost我正在从谷歌获取结果。获取数据并不难,我在获取数据后遇到格式化问题。最后一个
foreach
应该在第二个之外。@MateiMihai这不起作用,因为顶部会有一大块标题,而描述仍然在底部。我想问的是如何将标题与描述按顺序匹配。谢谢。我更喜欢这个答案,因为它允许我更容易地扩展我想要分离的数据。