2017-07-27 101 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

謝謝你們,工作完美。 –