简体   繁体   English

如何在PHP中将mysql_fetch_assoc数组转换为[column,column]格式

[英]How to convert mysql_fetch_assoc array to [column,column] Format in PHP

This is my function 这是我的职责

$dataArray = array();
$results = mysqli_query($mysqli, ("SELECT CONCAT ('US-',  medicare_provider_charge_inpatient_drg100_fy2011.`Provider State`) AS `Provider State`,
                                        sum(ROUND(medicare_provider_charge_inpatient_drg100_fy2011.`Total Discharges`, 2)) AS `Total Discharges`
                                        FROM medicare_provider_charge_inpatient_drg100_fy2011
                                        WHERE medicare_provider_charge_inpatient_drg100_fy2011.`Provider Name` LIKE '%" . $hospital_name . "'
                                        GROUP BY CONCAT ('US-',  medicare_provider_charge_inpatient_drg100_fy2011.`Provider State`)"));
while ($row = mysqli_fetch_assoc($results)) {
    $dataArray[] = $row;
}

I want to display data in following format 我想以以下格式显示数据

[Provider State, Total Discharges],
[US-AL,2051],
[US-TN,6982]

the dump of $dataArray gives me $ dataArray的转储给了我

   Array
(
[0] => Array
    (
        [Provider State] => US-AL
        [Total Discharges] => 2051.00
    )

[1] => Array
    (
        [Provider State] => US-TN
        [Total Discharges] => 6982.00
    )

)

You just need to work with the data to display the way you want. 您只需要使用数据即可显示所需的方式。 Print first the column names and then the data. 首先打印列名,然后打印数据。 I made this example to work for any number of fields: 我使这个示例适用于任意数量的字段:

// Print the first row with column names
$firstRow = array_keys(reset($dataArray));
$output = array();
foreach($firstRow as $val) {
    $output[] = $val;
}
echo '['.implode(',',$output).']'."\n";

// Print all the data
foreach($dataArray as $row) {
   $output = array();
   foreach($row as $col) {
       $output[] = $col;
   }
   echo '['.implode(',',$output).']'."\n";
}
while ($row = mysqli_fetch_assoc($results)) {
    $dataArray[] = $row["Provider State"]. "," .$row["Total Discharges"];
}

That should make your data into a single-dimensional-array. 那应该使您的数据成为一维数组。

If you need such structure of array, use this (but it is strange): 如果您需要这种数组结构,请使用它(但很奇怪):

$newStructure = array();
$newStructure[] = "Provider State, Total Discharges";

while ($row = mysqli_fetch_assoc($results)) {
    $newStructure[] = $row['Provider State'] . ',' . $row['Total Discharges'];
}

If you want to just display data, use this: 如果只想显示数据,请使用以下命令:

echo "Provider State, Total Discharges";

while ($row = mysqli_fetch_assoc($results)) {
    echo = $row['Provider State'] . ',' . $row['Total Discharges'];
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM