Использование цикла for in (PHP)

У меня есть следующая база данных:

|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(", ");
}
}

Но это не работает. Почему бы и нет?

-5

Решение

Это цикл, который продолжается вечно, $ i никогда не меняется …

while ($i < 4) {
print_r(", ");
}

может ты это имел ввиду?

if ($i < 4) {
print_r(", ");
}
1

Другие решения

Вам нужно использовать 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);

https://eval.in/200035

0

вы можете

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, если вы хотите увидеть, что находится в массиве.

0
По вопросам рекламы [email protected]