Я работаю над этой проблемой сортировки по php. Мне нужно написать свои собственные функции сортировки, используя функции my_asort() и my_ksort(), которые выполняют точно такие же, как asort и ksort соответственно. Однако я не могу получить правильный вывод (я новичок в php), поэтому любая помощь в том, как исправить это, была бы весьма признательна.PHP my_asort() и my_ksort()
Это код, который я напечатал:
<?php
echo "Original Array<br><br>";
$member = array("Jack" => "55kg", "Bill" => "35kg", "Aaron" => "60kg", "Daniel" => "80kg");
foreach ($member as $user => $weight) {
echo "$user = $weight <br>";
}
echo "<br><br>";
function my_asort($member)
{
$keys=array_keys($member);
sort($keys);
foreach($keys as $key)
{
$val=$member[$key];
unset($member[$key]);
$member[$key]=$val;
}
}
echo "Sorted By user <br><br>";
foreach ($member as $user => $weight) {
echo "$user = $weight <br>";
}
echo "<br><br>";
function my_ksort($member)
{
$keys=array_keys($member);
sort($keys);
foreach($keys as $key)
{
$val=$member[$key];
unset($member[$key]);
$member[$key]=$val;
}
}
echo "Sorted By weight <br><br>";
foreach ($member as $user => $weight) {
echo "$user = $weight <br>";
}
?>
Это то, что она показывает: (Это не делает какую-либо сортировку, что я делаю не так?)
Original Array
Jack = 55kg
Bill = 35kg
Aaron = 60kg
Daniel = 80kg
Sorted By user
Jack = 55kg
Bill = 35kg
Aaron = 60kg
Daniel = 80kg
Sorted By weight
Jack = 55kg
Bill = 35kg
Aaron = 60kg
Daniel = 80kg
Спасибо за помощь, это имеет смысл в настоящее время. Однако при тестировании кода он просто сортирует имена, но не сортирует вес:/@peky – Arpit
@Arpit Я не вижу никакой разницы между функциями 'my_ksort' и' my_asort' в вашем коде. Поэтому он должен делать то же самое. Вы должны сортировать значения массива во втором подходе. – Peky
О, я вижу, я это выясню, спасибо еще раз! @peky – Arpit