这个php foreach代码有什么问题?(合并阵列)

这个php foreach代码有什么问题?(合并阵列),php,pdo,Php,Pdo,所以,预期的输出,或者至少我认为是这样的: items |itemLink ---------------------- Kill Bill|Kill Bill link Preman |Preman link 但代码的结果是: items => Kill Bill items => Preman itemLink => Kill Bill Link itemLink => Preman Link 它缺少其他项目和itemLin

所以,预期的输出,或者至少我认为是这样的:

items   |itemLink
----------------------
Kill Bill|Kill Bill link
Preman  |Preman link
但代码的结果是:

    items => Kill Bill
    items => Preman
    itemLink => Kill Bill Link 
    itemLink => Preman Link
它缺少其他项目和itemLink

那么,我如何实现我想要的输出呢

items => Kill Bill
itemLink => Kill Bill Link 
这只获取每个结果集的第一行。您需要所有:

并调整代码的其余部分

        $fetchItem = $itemQuery->fetchAll(PDO::FETCH_ASSOC);
        $fetchLink = $linkQuery->fetchAll(PDO::FETCH_ASSOC);
数组\合并将两个数组连接到以下位置:

Array(
  [0] => { 'items' => 'Kill Bill' },
  [1] => { 'items' => 'Preman' }
)
Array(
  [0] => { 'itemLink' => 'Kill Bill' },
  [1] => { 'itemLink' => 'Preman' }
)
现在我们有了一个二维数组。要遍历这些值,我们首先需要选择每个$entry,这在外部foreach中完成,然后可以访问内部foreach中的键/值结构

正如在另一条评论中指出的那样:如果您想保留itemsanditemlink之间的连接,首先应该将查询更改为

从菜单中选择项目、项目链接 您可以使用这个简单的函数来完成您现在要做的事情

Array(
  [0] => { 'items' => 'Kill Bill' },
  [1] => { 'items' => 'Preman' },
  [2] => { 'itemLink' => 'Kill Bill' },
  [3] => { 'itemLink' => 'Preman' }
)

这将使$fetchItem中的所有项都成为$fetchLink中的项的键。

现在它给了我这个:0=>Array 1=>Array 2=>Array 3=>Array 4=>Array 5=>Array@MouseHello你有没有像我说的那样调整前爪?对不起,没有注意到前爪。它现在可以工作了,它是如何工作的?不过,只要将查询更改为“从菜单中选择项、项链接”,两个值之间的链接就会更容易。
        foreach($merged as $entry) {
          foreach( $entry as $key => $value ) {
            echo "${key} =>  ${value} <br />";
          }
        }
Array(
  [0] => { 'items' => 'Kill Bill' },
  [1] => { 'items' => 'Preman' }
)
Array(
  [0] => { 'itemLink' => 'Kill Bill' },
  [1] => { 'itemLink' => 'Preman' }
)
Array(
  [0] => { 'items' => 'Kill Bill' },
  [1] => { 'items' => 'Preman' },
  [2] => { 'itemLink' => 'Kill Bill' },
  [3] => { 'itemLink' => 'Preman' }
)
$merged = array_combine($fetchItem, $fetchLink);