1

我正在尝试将数组添加到现有数组中。我可以使用 array_push添加数组。唯一的问题是,当尝试添加包含数组键的数组时,它会在现有数组中添加一个额外的数组。

如果我给你看可能是最好的

foreach ($fields as $f)
{  
    if ($f == 'Thumbnail')
    {
        $thumnail = array('Thumbnail' => Assets::getProductThumbnail($row['id'] );
        array_push($newrow, $thumnail);
    }
    else
    { 
        $newrow[$f] = $row[$f];
    }
}

上面的fields数组是从 SQl 查询动态馈送的数组的一部分,然后将其馈送到名为 的新数组$newrow中。但是,对于这个$newrow数组,我需要添加缩略图数组 fields 。

以下是上述代码的输出( using var_dump)。代码的唯一问题是我不想在数组中创建单独的数组。我只需要将它添加到数组中。

 array(4) { ["Product ID"]=> string(7) "1007520"
           ["SKU"]=> string(5) "G1505"
           ["Name"]=> string(22) "150mm Oval Scale Ruler"            
           array(1) { ["Thumbnail"]=> string(77) "thumbnails/products/5036228.jpg" } }

我真的很感激任何建议。

4

3 回答 3

2

您可以使用array_merge功能

$newrow = array_merge($newrow, $thumnail);
于 2013-07-30T11:21:03.783 回答
2

你真正想要的是:

$newrow['Thumbnail'] = Assets::getProductThumbnail($row['id']);
于 2013-07-30T12:22:41.000 回答
1

或者,您也可以将其直接分配给 $newrow:

if ($f == 'Thumbnail')
  $newrow[$f] = Assets::getProductThumbnail($row['id']);
else
...

或者,如果您希望代码更短:

foreach($fields as $f)
  $newrow[$f] = ($f == 'Thumbnail')? Assets::getProductThumbnail($row['id']) : $row[$f];

但是,如果您通过代码中的行数获得报酬,请不要这样做,请继续使用您的代码 :) j/k

于 2013-07-30T11:55:20.430 回答