Привет, ребята, недавно я борюсь с выводом результата моего запроса sql. После выполнения запроса и цикла. Результат выглядит так:
Array
(
[0] => Array
(
[0] => 68686.4792
[Average] => 68686.4792
)
[1] => Array
(
[0] => 83703.3284
[Average] => 83703.3284
)
[2] => Array
(
[0] => 95899.7763
[Average] => 95899.7763
)
[3] => Array
(
[0] => 115881.2429
[Average] => 115881.2429
)
[4] => Array
(
[0] => 99444.4138
[Average] => 99444.4138
)
)
но я ожидал, что результат будет в таком формате:
Array
(
[0] => 68686.4792
[1] => 83703.3284
[2] => 95899.7763
[3] => 115881.2429
[4] => 99444.4138
)
А вот и мой php-код:
<?php
$strQuery1 = 'SELECT Avg(Price) as Average From price GROUP by year(Date_of_Transfer)';
$result1 = $dbhandle->query($strQuery1) or exit("Error code ({$dbhandle->errno}): {$dbhandle->error}");
$rows=array();
while($row = mysqli_fetch_array($result1)){
$rows[] = $row;
}
echo'<pre>';
print_r ($rows);
echo'</pre>';
?>
Интересно, сделал ли я что-то не так в коде или есть ли способ преобразовать массив в формат, который я ожидал. Спасибо.
большое спасибо ! Оно работает!
Не могли бы вы объяснить, в чем разница между вашим и моим? Немного запутался, большое спасибо
также попробуйте while($row = mysqli_fetch_assoc($result1)){ $rows[] = $row['Average']; }
Спасибо! Это тоже работает! Но я немного запутался, как это может работать! Спасибо.
Упс ... Ответ @Tamil Selvan C лучше моего! Я не знаю, почему полученный результат содержит две строки ... Я только что обнаружил, что вам нужен массив вместо массива массивов ... Разница между вашим и моим в том, что мой ответ принимает только указанный столбец, но ваш принимает все извлеченные результат независимо от того, что он возвращает.
Параметры здесь очень просты: вы либо сглаживаете массив, либо выполняете цикл foreach на один шаг в массиве.
РЕШЕНИЕ 1:
// $array = your multidimensional array
$flat_array = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $k=>$v){
$flat_array[$k] = $v;
}
Также задокументировано: http://www.phpro.org/examples/Flatten-Array.html
РЕШЕНИЕ 2: Об этом говорили другие люди, которые уже ответили
while($row = mysqli_fetch_array($result1)){ $rows[] = $row['0']; }
Попробуйте
while($row = mysqli_fetch_array($result1)){ $rows[] = $row['0']; }