【问题标题】:Sort PHP by subheaders按子标题对 PHP 进行排序
【发布时间】:2013-02-13 16:04:13
【问题描述】:

我正在尝试按该表中的子标题对我的 SQL 表进行排序。我想要得到的输出是这样的:

ItemHeader1
-item1
-item2
-item3
ItemHeader2
-item4
-item5
ect.

但我得到的是:

ItemHeader1
-item1
-item1
-item1
ect.

这是我的 PHP 代码:

$index_content_enquirers = mysql_query("SELECT * FROM index_content_enquirers WHERE lang_attribute = '$lang_identify' ORDER BY item_sectionname_english ASC, item_english_title ASC") or die(mysql_error());
$get_index_content_enquirers = mysql_fetch_assoc($index_content_enquirers);
$contentinfo = array();

foreach($get_index_content_enquirers as $row) {
    $contentinfo[$get_index_content_enquirers['item_sectionname_english']][] = $get_index_content_enquirers['item_english_title'];
}

foreach($contentinfo as $contenttitle => $item_titles) {
    echo $contenttitle;
    foreach($item_titles as $item_title) {
        echo "<br />". $item_title;
    }
}

提前致谢!

【问题讨论】:

标签: php sql sorting loops foreach


【解决方案1】:

首先 - 不要使用 mysql 函数,因为它们已被弃用。使用 mysqli 或 PDO。

在这个循环中:

foreach($get_index_content_enquirers as $row) {
    $contentinfo[$get_index_content_enquirers['item_sectionname_english']][] = 
         $get_index_content_enquirers['item_english_title'];
}

您应该使用$row 而不是$get_index_content_enquirers。这样就可以了:)

foreach($get_index_content_enquirers as $row) {
    $contentinfo[$row['item_sectionname_english']][] = 
         $row['item_english_title'];
}

【讨论】:

  • 当我使用 $row 它给我一个“警告:非法字符串偏移”错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
相关资源
最近更新 更多