У меня есть следующая база данных:
|id|windspeed|
|1|3.6|
|2|4.2|
|3|4.1|
и т.п.
Теперь я хочу вывести последние 5 значений скорости ветра, разделенных запятой, но заканчивая конечным значением, а не запятой.
for ($i = 0; $i < 5; $i++) {
print_r($aResult[$i][windspeed]);
while ($i < 4) {
print_r(", ");
}
}
Но это не работает. Почему бы и нет?
Это цикл, который продолжается вечно, $ i никогда не меняется …
while ($i < 4) {
print_r(", ");
}
может ты это имел ввиду?
if ($i < 4) {
print_r(", ");
}
Вам нужно использовать implode
.
Если вы хотите получить последние 5, используйте array_reverse
Например;
<?php
$a = array();
$a[1] = array("id" => 1, "windspeed" => 3.6);
$a[2] = array("id" => 2, "windspeed" => 4.2);
$a[3] = array("id" => 3, "windspeed" => 4.1);
$a[4] = array("id" => 4, "windspeed" => 5.1);
$a[5] = array("id" => 5, "windspeed" => 6.1);
$a[6] = array("id" => 6, "windspeed" => 7.1);
$a[7] = array("id" => 7, "windspeed" => 8.1);$intIteration = 0;
$arrWindSpeeds = array();
foreach($a as $arrRecord) {
$arrWindSpeeds[] = $arrRecord['windspeed'];
if($intIteration >= 5) {
break;
}
$intIteration++;
}
echo implode(", ", $arrWindSpeeds);
вы можете
for ($i = 1; $i < 5; $i++) { -- start the counter at 1, it will do exactly 5 loop not six which starts from 0
print_r($aResult[$i][windspeed]); -- you dont need print_r
you can use
echo $aResult[$i][windspeed].", "; -- append a "," at the end of the var your getting
while ($i < 4) { -- you don't need the while loop either
print_r(", ");
}
}
используйте print_r, если вы хотите увидеть, что находится в массиве.