2014-01-13 212 views
0

我无法找到任何答案,因此我目前没有任何想法。手动将元素添加到提取数组的末尾

我有以下环路由阵列中的存储,数据库的资源获取

$posts = array(); 
     while ($row = mysql_fetch_assoc($result)){ 
      $posts[] = $row; 
     } 

      return $posts; 

$postsvar_dump输出以下:

array (size=1) 
    0 => 
    array (size=6) 
     0 => 
     array (size=4) 
      'items' => string '16' (length=2) 
      'item_name' => string 'Blu-ray Disc Player BDP-S1100' (length=29) 
      'item_price' => string '3500.00' (length=7) 
      'avatar' => string 'gallery/miniaturas/cf6772a2c2b72d575f11b41aee5a2f47.png' (length=55) 
     1 => 
     array (size=4) 
      'items' => string '16' (length=2) 
      'item_name' => string 'Blu-ray Disc Player BDP-S1100' (length=29) 
      'item_price' => string '3500.00' (length=7) 
      'avatar' => string 'gallery/miniaturas/a6bf82f38d930567a759eaef91d6fb30.png' (length=55) 

我想什么做的是在每个阵列的末尾添加一个带有“type”键值和“1”的静态值,因此var_dump将如下所示:

array (size=1) 
    0 => 
    array (size=6) 
     0 => 
     array (size=4) 
      'items' => string '16' (length=2) 
      'item_name' => string 'Blu-ray Disc Player BDP-S1100' (length=29) 
      'item_price' => string '3500.00' (length=7) 
      'avatar' => string 'gallery/miniaturas/cf6772a2c2b72d575f11b41aee5a2f47.png' 
      'type' => int 1 
    (length=55) 
     1 => 
     array (size=4) 
      'items' => string '16' (length=2) 
      'item_name' => string 'Blu-ray Disc Player BDP-S1100' (length=29) 
      'item_price' => string '3500.00' (length=7) 
      'avatar' => string 'gallery/miniaturas/a6bf82f38d930567a759eaef91d6fb30.png' 
      'type' => int 1 
    (length=55) 

可能吗?如果是这样,怎么样?

谢谢。

回答

3

在追加它之前,只需修改$row即可。避免了额外的开销

$posts = array(); 
while ($row = mysql_fetch_assoc($result)){ 
     $row['type'] = 1; 
     $posts[] = $row; 
} 
+0

这工作得很好!非常感谢 – DannyG

1

你应该能够任意键,其值为1这样添加到阵列中:

$posts = array(); 
while ($row = mysql_fetch_assoc($result)){ 
     $posts[] = $row; 
     $posts[count($posts)-1]["type"] = 1; 
} 

return $posts; 

另外,如果您可以编辑您的SQL查询,还可以添加1 as type到年底你选择,然后你的数据库将为你添加额外的列。

+0

非常感谢您的回答,但@Machavity其中一个更精确,所以我把它扔了。然而,这也是工作。 – DannyG

0

这应该工作:

while ($row = mysql_fetch_assoc($result)){ 
    $posts[] = array_merge($row, array(
     'type' => 1, 
    )); 
} 

,或者,修改你的SQL查询来自动添加字段:

$sql = 'SELECT *, 1 AS type FROM table'; 
相关问题