Мы знаем, что массивы с нулевым индексом , поэтому при использовании count($aName)
возвращается 6 , но в вашем существующем массиве нет ничего похожего на $aName[6]
, поэтому для доступа значения вашего $aName
с этого момента с последнего до первого вы должны использовать $i-1
. Надеюсь, это поможет понять это сейчас.
Но с вашим существующим кодом - прежде всего там, где вы использовали цикл for()
, вы выполняете некоторый рефакторинг, такой как count($aName)
длина массива только один раз, а не в цикле for()
, например
$aNames = array("Band1","Band2","Band3","Band4","Band5","Band6");
sort($aNames);
$count = count($aNames); // see the change here
for($i = $count; $i > 0; $i-- ) {
echo "<h" .$i." align='center'>" . $aNames[$i-1] ." Is insane</h".$i.">";
}
и Вы также можете использовать индексный массив, чтобы избежать $i-1
пути. Просто используйте массив, как этот формат, чтобы отслеживать. Вроде как
$aNames = array(1=>"Band1",2=>"Band2",3=>"Band3",4=>"Band4",5=>"Band5",6=>"Band6");
Помимо вашего существующего решения . Вы можете легко сделать это, используя foreach()
без использования какого-либо $i-1
. Просто надо krsort()
и foreach()
<?php
$aNames = array(1=>"Band1",2=>"Band2",3=>"Band3",4=>"Band4",5=>"Band5",6=>"Band6");
krsort($aNames);
foreach($aNames as $i=>$v){
echo "<h" .$i." align='center'>" . $aNames[$i] ." Is insane</h".$i.">";
}