我希望使用我的PHP笔记软件或多或少的简单索引,每个笔记都有一个“语言”字段,用于编写其编写的语言。当我在while循环中遍历每个条目时,我'我不确定如何列出它们的类别,如:
PHP:
Note 1
Note 5
SQL:
Note 2
Note 3
我是否需要将所有条目放在if
s的临时数组中,如下所示?
if($field['language'] == "PHP")
$PHPsection[] = $field;
虽然这看起来并不是最好的,因为我需要对每个部分进行硬编码..我被卡住了。
答案 0 :(得分:2)
您可以在数据库中进行分组。 或按部分排序,然后迭代并在部分更改时输出正确的分隔代码。临时数组也是一种解决方案。鉴于您的示例代码maby,这可以指向一个可能的directino(尽管临时数组当然不是一个优雅的解决方案,但如果数据不是那么多它并不重要)
<?
$result = array();
$result[] = array('section' => 'php','note' => 'bla');
$result[] = array('section' => 'php','note' => 'bla');
$result[] = array('section' => 'perl','note' => 'bla');
$result[] = array('section' => 'java','note' => 'bla');
$grouped = array();
for($i=0;$i<count($result);$i++) {
$grouped[$result[$i]['section']][] = $result[$i]['note'];
}
print_r($grouped);
?>
答案 1 :(得分:1)
听起来你需要在这里做一个查找表。如下。
Note_id | Language_id
--------+------------
1 | 1
1 | 4
2 | 3
3 | 1
然后,将这两个表链接起来
Note_id | Note_Name| ...
--------+----------+----
1 | Testing | ...
2 | Groceries| ...
Language_ID | Language
------------+---------
1 | English
2 | German
3 | Klingon
从那里,您可以编写如下查询:
SELECT
Note_name, Language
FROM
languages l, notes n, language_note_lookup lnl
WHERE
l.Language_ID = lnl.Language_ID AND
n.Note_ID = n.Note_ID AND
l.Language = "German"
您只需执行
即可轻松获得所有语言的列表SELECT Language FROM languages