使用PHP将SQL查询行添加到新数组

时间:2017-07-27 08:51:17

标签: php mysql arrays for-loop

我正在对数据库执行sql查询,该数据库返回所有数据。

SQL代码

 $sql_query3 = $DFS->prepare( "

        select
              *
        from
              TABLE_NAME
        where

              WHAT_I_WANT = '".$variable."'

    " );

    $sql_query3->execute();

    $result3 = $sql_query3->fetchall();

    print_r($result3);

print_r($ result3)的结果

Array
(
    [0] => Array
        (
            [REFERENCE] => GBBRF707321224
            [WEIGHT] => 199.00
            [VOLUME] => 0.398
        )
)

Array
(
    [0] => Array
        (
            [REFERENCE] => GBBRF707321222
            [WEIGHT] => 620.00
            [VOLUME] => 1.240
        )
)

Array
(
    [0] => Array
        (
            [REFERENCE] => GBBRF707321220
            [WEIGHT] => 2465.00
            [VOLUME] =>4.930
        )
)

print_r的结果($ new_array)

Array
(
    [0] => GBBRF707321224
    [1] => 199.00
    [2] => 0.398
)
Array
(
    [0] => GBBRF707321222
    [1] => 620.00
    [2] => 1.240
)
Array
(
    [0] => GBBRF707321220
    [1] => 2465.00
    [2] => 4.930
)

然后我循环遍历$ result3并从中选择我想要的值。在获得了我想要的所有信息之后,我想将它们添加到一个新数组中。但是,当我尝试这样做时,它会将所有内容添加到一个长数组中。

然后我尝试$new_array = array();然后$new_array[] = $row3['One']。这可以工作,但每次循环时都会创建单独的数组。

我希望能够保留正在打印的数组,但是如何格式化$ result3数组。

这就是我现在正在做的事情

 $new_array = array();

        foreach( $result3 as $row3 ) {



            $new_array[]   = $row3[   'REFERENCE'              ];
            $new_array[]   = $row3[   'WEIGHT'                 ];
            $new_array[]   = $row3[   'VOLUME'                 ];



    }

$ new_array有两个问题。

第一个问题是将行添加到$ new_array,并将键作为索引。我希望能够插入一个字符串作为密钥。

第二件事是,我希望数组看起来像$ result3数组。

喜欢这个

 Array
    (
        [0] => Array
            (

            )
     )

任何提示或想法都将不胜感激。

1 个答案:

答案 0 :(得分:2)

因为您总是为new_array创建新索引。试试这个:

$new_array = array();

foreach( $result3 as $row3 ) {

  $tmp_array = array();

  $tmp_array[]   = $row3[   'REFERENCE'              ];
  $tmp_array[]   = $row3[   'WEIGHT'                 ];
  $tmp_array[]   = $row3[   'VOLUME'                 ];
  $new_array[]   = $tmp_array;



}