2017-07-27 107 views
0

我正在对返回所有数据的数据库执行sql查询。将SQL查询行添加到使用PHP的新数组中

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)的print_r($ new_array)的

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 
     ) 
) 

结果

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'     ]; 



    } 

有2个问题与$ new_array。

第一个问题是,行被添加到$ new_array并且键为索引。我希望能够插入一个字符串作为关键。第二件事是,我想让数组看起来像$ result3数组。

像这样

Array 
    (
     [0] => Array 
      (

      ) 
    ) 

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

+0

你需要创建一个临时数组的一个result3数组循环。然后将result3数组的所有值插入到临时创建的数组中,然后将临时数组插入到new_array中。 –

回答

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; 



} 
+0

它提供了错误“功能名称必须是行147上的字符串”,它是$ new_array [] = $ tmp_array(); –

+0

更改'$ new_array [] = $ tmp_array();'为'$ new_array [] = $ tmp_array;' – RiggsFolly

+0

谢谢你们,工作完美。 –