迭代追加数组与数组从sql结果



我是新来的,但是很喜欢阅读别人的问题和答案。我对PHP相当陌生,正在做一个项目-在MySQL中基本表查找等。我最终想要得到的是一个数组的数组,它的形式如下所示,带有调味品(不是我的实际项目)。内容来自两个不同的表。对于每个调味品名称(来自表1),我在表2中查找按ID链接的调味品类型。搜索和抓取东西很好,但是我在循环和构建最后的$Condiments数组时遇到了麻烦。

在循环的第一部分,我从$行中获取调味品名称并将其附加到数组中。但是我需要每个调味品的名字都是一个空数组,以便在下一步中放入一些东西。我已经环顾四周,但无法找到一个好方法来迭代追加新的占位符数组到数组。是否有一个优雅的解决方案?一些我没有利用的很酷的函数?谢谢!

// SQL search for condiment words, blah blah, leading to...
$rowsnumber = mysql_num_rows($result);
for ($j = 0 ; $j < $rowsnumber ; ++$j)
    {
    $row = mysql_fetch_row($result); // $row is an array featuring a condiment name and other stuff.
    $Condiments[] = $row[1]; // condiment name goes in array.
    $CondimentType = searchTable2($row[0]); 
    // using the condiment name's ID, I look up its matching types via a function.
    // $CondimentType is now an array of IDs and types from Table2 that I want to append to the condiment name I just added above.
        $Condiments[$row[1]] = $CondimentType;
    // I repeat the process for the next name
    }
// Final desired result...
$Condiments=
Array
(
    [Pickles] => Array
        (
            [34] => Dill
            [23] => Butter
        )
    [Mustard] => Array
        (
            [22] => Hot
        )
    [Relish] => Array
        (
            [3] => Pickle
        )
)

所以就像我说的,您需要使用join来执行所需的任务。

你可以在这里找到更多关于join的解释

http://dev.mysql.com/doc/refman/5.0/en/join.html

在您的示例中,该查询应该执行

任务
select t1.word,t3.word
from table1  as t1  join table2 as t2 on t1.id =t2.id
left join table1 as t3 on t3.id = t2.linkid

我在我的机器上运行了这个查询,结果如下

+---------+--------+
| word    | word   |
+---------+--------+
| Pickles | Dill   |
| Pickles | Butter |
| Mustard | Hot    |
| Relish  | Pickle |
+---------+--------+

因此,不是遍历每一行,而是执行连接并获得结果。在PHP中,您可以执行所需的数组格式。希望这对你有帮助

相关内容

  • 没有找到相关文章

最新更新