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 循环中显示错误数据的循环_Php_Loops_Pdf - Fatal编程技术网

Php 循环中显示错误数据的循环

Php 循环中显示错误数据的循环,php,loops,pdf,Php,Loops,Pdf,我有一个按列表分类的PDF文件列表 像这样: Terms: PDF1.pdf PDF2.pdf Conditions: PDF1.pdf PDF3.pdf 因此,我首先循环所有类别以显示页面上类别的标题,并在该循环中循环pdf文件URL(仅出于测试目的,最终代码将获得锚定标记等) 问题是我的代码显示了所有标题上的所有pdf文件。不仅仅是属于他们的pdf文件。我做错了什么?每次循环后是否需要清空$attach 我的代码: foreach($manualcr as $mantitle){ i

我有一个按列表分类的PDF文件列表

像这样:

Terms:
PDF1.pdf
PDF2.pdf

Conditions:
PDF1.pdf
PDF3.pdf
因此,我首先循环所有类别以显示页面上类别的标题,并在该循环中循环pdf文件URL(仅出于测试目的,最终代码将获得锚定标记等)

问题是我的代码显示了所有标题上的所有pdf文件。不仅仅是属于他们的pdf文件。我做错了什么?每次循环后是否需要清空
$attach

我的代码:

foreach($manualcr as $mantitle){
  if($mantitle['id'] != ''){
    $attachoverzicht .= '<h3>'.$mantitle['title'].'</h3>';
    foreach($manucr as $attach){
      if($attach['id'] != ''){
        $attachoverzicht .= '<li>'.$attach['url'].'</li>';
      }
    }
  }
}
echo $attachoverzicht;
以及
$manucr

    array(4) {
  [0]=>
  array(26) {
    ["id"]=>
    string(1) "1"
    ["filename"]=>
    string(13) "dummy_pdf.pdf"
    ["filename_sys"]=>
    string(71) "/home/website/public_html/cms/attachments/article/182/dummy_pdf.pdf"
    ["file_type"]=>
    string(15) "application/pdf"
    ["file_size"]=>
    string(5) "16555"
    ["url"]=>
    string(37) "attachments/article/182/dummy_pdf.pdf"
    ["uri_type"]=>
    string(4) "file"
    ["url_valid"]=>
    string(1) "0"
    ["url_relative"]=>
    string(1) "0"
    ["url_verify"]=>
    string(1) "0"
    ["display_name"]=>
    string(9) "Test naam"
    ["description"]=>
    string(0) ""
    ["icon_filename"]=>
    string(7) "pdf.gif"
    ["access"]=>
    string(1) "2"
    ["state"]=>
    string(1) "0"
    ["user_field_1"]=>
    string(0) ""
    ["user_field_2"]=>
    string(0) ""
    ["user_field_3"]=>
    string(0) ""
    ["parent_type"]=>
    string(11) "com_content"
    ["parent_entity"]=>
    string(7) "article"
    ["parent_id"]=>
    string(3) "182"
    ["created"]=>
    string(19) "2017-02-16 13:56:03"
    ["created_by"]=>
    string(3) "360"
    ["modified"]=>
    string(19) "2017-02-16 13:56:03"
    ["modified_by"]=>
    string(3) "360"
    ["download_count"]=>
    string(1) "0"
  }
  [1]=>
  array(26) {
    ["id"]=>
    string(1) "2"
    ["filename"]=>
    string(14) "dummy_pdf1.pdf"
    ["filename_sys"]=>
    string(72) "/home/website/public_html/cms/attachments/article/182/dummy_pdf1.pdf"
    ["file_type"]=>
    string(15) "application/pdf"
    ["file_size"]=>
    string(5) "16555"
    ["url"]=>
    string(38) "attachments/article/182/dummy_pdf1.pdf"
    ["uri_type"]=>
    string(4) "file"
    ["url_valid"]=>
    string(1) "0"
    ["url_relative"]=>
    string(1) "0"
    ["url_verify"]=>
    string(1) "0"
    ["display_name"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["icon_filename"]=>
    string(7) "pdf.gif"
    ["access"]=>
    string(1) "2"
    ["state"]=>
    string(1) "0"
    ["user_field_1"]=>
    string(0) ""
    ["user_field_2"]=>
    string(0) ""
    ["user_field_3"]=>
    string(0) ""
    ["parent_type"]=>
    string(11) "com_content"
    ["parent_entity"]=>
    string(7) "article"
    ["parent_id"]=>
    string(3) "182"
    ["created"]=>
    string(19) "2017-02-16 13:56:39"
    ["created_by"]=>
    string(3) "360"
    ["modified"]=>
    string(19) "2017-02-16 13:56:39"
    ["modified_by"]=>
    string(3) "360"
    ["download_count"]=>
    string(1) "0"
  }
  [2]=>
  array(26) {
    ["id"]=>
    string(1) "3"
    ["filename"]=>
    string(13) "dummy_pdf.pdf"
    ["filename_sys"]=>
    string(71) "/home/website/public_html/cms/attachments/article/181/dummy_pdf.pdf"
    ["file_type"]=>
    string(15) "application/pdf"
    ["file_size"]=>
    string(5) "16555"
    ["url"]=>
    string(37) "attachments/article/181/dummy_pdf.pdf"
    ["uri_type"]=>
    string(4) "file"
    ["url_valid"]=>
    string(1) "0"
    ["url_relative"]=>
    string(1) "0"
    ["url_verify"]=>
    string(1) "0"
    ["display_name"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["icon_filename"]=>
    string(7) "pdf.gif"
    ["access"]=>
    string(1) "2"
    ["state"]=>
    string(1) "0"
    ["user_field_1"]=>
    string(0) ""
    ["user_field_2"]=>
    string(0) ""
    ["user_field_3"]=>
    string(0) ""
    ["parent_type"]=>
    string(11) "com_content"
    ["parent_entity"]=>
    string(7) "article"
    ["parent_id"]=>
    string(3) "181"
    ["created"]=>
    string(19) "2017-02-16 13:56:55"
    ["created_by"]=>
    string(3) "360"
    ["modified"]=>
    string(19) "2017-02-16 13:56:55"
    ["modified_by"]=>
    string(3) "360"
    ["download_count"]=>
    string(1) "0"
  }
  [3]=>
  NULL
}

从您的
var\u dump
输出中,我假设您对应的字段是
$mantitle['id']
$attach['parent\u id']

您必须在第二个循环中检查这一点,例如:

foreach($manualcr as $mantitle){
  if($mantitle['id'] != ''){
    $attachoverzicht .= '<h3>'.$mantitle['title'].'</h3>';
    foreach($manucr as $attach){
      if($attach['id'] != '' && $attach['parent_id'] == $mantitle['id']){ // Check for condition added here
        $attachoverzicht .= '<li>'.$attach['url'].'</li>';
      }
    }
  }
}
echo $attachoverzicht;
foreach($manualcr作为$mantitle){
如果($mantitle['id']!=''){
$attachoverzicht.='.$mantitle['title'.'”;
foreach($manucr作为$attach){
如果($attach['id']!=''&&$attach['parent_id']==$mantitle['id']){//检查此处添加的条件
$attachoverzicht.='
  • 。$attach['url'].
  • ; } } } } echo$attachoverzicht;
    能否显示
    var\u dump($manualcr)的输出
    变量转储($manucr)?您似乎没有检查您的
    $manucr
    类别与您的
    $manualcr
    类别相同的情况。是的,我会将它们添加到我的问题中@Roberto06您是否至少可以将数据库访问调用更改为
    mysqli_fetch_assoc()
    ,或者如果使用
    PDO::fetch_assoc
    进行PDO fetch,则数组中只包含每列数据的一次出现。这将使您的代码内存使用率下降,谢谢,这是非常有意义的。
    foreach($manualcr as $mantitle){
      if($mantitle['id'] != ''){
        $attachoverzicht .= '<h3>'.$mantitle['title'].'</h3>';
        foreach($manucr as $attach){
          if($attach['id'] != '' && $attach['parent_id'] == $mantitle['id']){ // Check for condition added here
            $attachoverzicht .= '<li>'.$attach['url'].'</li>';
          }
        }
      }
    }
    echo $attachoverzicht;