2017-06-27 27 views
0

我已經花了很多時間嚴重金額看陣列arrays_fill_keys和許多其他的替代品,試圖解決什麼看似是一個標準要求PHP對象一個數據庫表。我將返回幾列,最可能是所有行。在返回時,我正在尋找將每行作爲對象插入到數組中。我已經能夠做到這一點。 但我想返回每個列作爲該對象中的鍵。我已部分能夠做到這一點。但我的代碼似乎插入每行作爲一個數組與另一個數組,而不是數組中的對象。PHP:</p> <p>我:存儲陣列內的數組(多維數組)

下面的代碼:

if(isset($_POST["BasicSearchExecuted"]) && !empty($_POST["BasicSearchExecuted"])){ 
    $basic_search_table_name = array($_POST["TableName"]); 
    $basic_search_column_names_sql = "SELECT TABLE_NAME, CATEGORY_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_LENGTH FROM TableColumnsAndCategories WHERE TABLE_NAME=?"; 
    $basic_search_table_name = str_replace('View', '', $basic_search_table_name); 
    $basic_search_column_names = sqlsrv_query($database_connection, $basic_search_column_names_sql, $basic_search_table_name); 
    $basic_search_column_array = array(); 
    while($basic_search_column_names_option = sqlsrv_fetch_object($basic_search_column_names)){ 
     $basic_search_column_array[] = array("ColumnName" => $basic_search_column_names_option->COLUMN_NAME, "DataType" => $basic_search_column_names_option->DATA_TYPE, "CategoryName" => $basic_search_column_names_option->CATEGORY_NAME);  
    } 
    print_r($basic_search_column_array); 
} 

這是返回以下:

Array 
(
    [0] => Array 
     (
      [ColumnName] => HardwareAssetID 
      [DataType] => uniqueidentifier 
      [CategoryName] => Default 
     ) 

    [1] => Array 
     (
      [ColumnName] => HardwareAssetAssetName 
      [DataType] => varchar 
      [CategoryName] => Basic 
     ) 

    [2] => Array 
     (
      [ColumnName] => HardwareAssetAssetStatusID 
      [DataType] => tinyint 
      [CategoryName] => Basic 
     ) 

    [3] => Array 
     (
      [ColumnName] => HardwareAssetAssetTag 
      [DataType] => varchar 
      [CategoryName] => Basic 
     ) 

    [4] => Array 
     (
      [ColumnName] => HardwareAssetSerialNumber 
      [DataType] => varchar 
      [CategoryName] => Basic 
     ) 

    [5] => Array 
     (
      [ColumnName] => HardwareAssetManufacturerID 
      [DataType] => uniqueidentifier 
      [CategoryName] => Basic 
     ) 
) 

是我,而不是想要回是這樣的,或者至少一些可以解釋和利用,如以下在JS:

Array= [{ 

     ColumnName: "HardwareAssetID", 
     DataType: "uniqueidentifier", 
     CategoryName: "Default", 
     }, 
     { 
     ColumnName: "HardwareAssetID", 
     DataType: "uniqueidentifier", 
     CategoryName: "Default", 
     }, 
     { 
     ColumnName: "HardwareAssetID", 
     DataType: "uniqueidentifier", 
     CategoryName: "Default", 
     } 
    }] 

任何幫助或建議表示讚賞。

回答

1

內置的json_encode函數可以工作嗎?

只需將print_r($basic_search_column_array);替換爲echo json_encode($basic_search_column_array);即可。

+0

非常感謝,就這麼簡單。沒有意識到功能 – TheTechnicalPaladin

+1

每種語言都有一些關鍵字可以幫助您搜索Google。 'json'和'encode'是兩個很好的:) – Bing

0

您是否閱讀過print_r()的文檔?它說:「打印關於變量的人類可讀信息」print_r()的目的是幫助開發人員理解變量的價值和結構,而不是將數據傳遞給另一個程序或存儲以供以後使用。

使用,如果你想對數據進行編碼爲JSON將它傳遞到另一個軟件(當然是在瀏覽器中運行的JS腳本,例如)json_encode()