проблемы asort / arsort с моим массивом, возникающие при создании таблицы

Я не могу заставить asort / arsort работать правильно с моим кодом. Я изначально использовал сортировку / сортировку. Когда я печатаю_r, массив кажется отсортированным к тому времени, я перехожу к своей функции «createtable», и она просто печатает значения в индексированном порядке. Есть идеи, что происходит?

Сегмент кода в моем основном файле

//Sorts Array by value [Ascending]
asort($songArray);
print_r($songArray);

//Creates table [See inc_func.php]
CreateTable ($songArray);

Ссылочная функция

function CreateTable ($array)
{
/* Create Table:
*  count given $array as $arrayCount
*  table_start
*  for arrayCount > 0, add table elements
*  table_end
*/

$arrayCount = count($array);
echo '<table>';
echo '<th colspan="2"> "Andrews Favorite Songs"';

// as long as arraycount > 0, add table elements
for ($i = 0; $i < $arrayCount; $i++)
{
$value = $array[$i];
echo '<tr>';
echo '<td>'.($i+1).'</td>';
echo '<td>'.$value.'</td>';
echo '</tr>';
}

echo '</table>'.'<br>';
}

Благодарю вас.

1

Решение

Сортировка массива не изменяет ключи, а просто переупорядочивает их

Ваш код отображения затем выполняет итерацию массива в числовом порядке, поэтому порядок игнорируется.

Вместо этого используйте цикл foreach:

function CreateTable ($array)
{
echo '<table>';
echo '<th colspan="2"> "Andrews Favorite Songs"';
$count = 1;
foreach ($array as $value)
{
echo '<tr>';
echo '<td>'.$count++'</td>';
echo '<td>'.$value.'</td>';
echo '</tr>';
}

echo '</table>'.'<br>';
}
2

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

Других решений пока нет …

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