我正在处理这个在php中排序的问题。我必须编写自己的排序函数,使用my_asort()和my_ksort()函数,它们分别执行与asort和ksort完全相同的操作。但是,我无法获得正确的输出(我是对php的新手),因此,任何帮助如何纠正这一点,将是非常感谢的。
这是我输入的代码:
<?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发布于 2015-03-20 15:45:57
您需要调用您的函数(或者使用没有函数声明的代码)。你只是在你的代码中定义了它们。
因此,如果您想使用它们,您需要调用它们,您的代码如下所示:
<?php
function my_ksort(&$member)
{
$keys=array_keys($member);
sort($keys);
foreach($keys as $key)
{
$val=$member[$key];
unset($member[$key]);
$member[$key]=$val;
}
}
function my_asort(&$member)
{
$keys=array_keys($member);
sort($keys);
foreach($keys as $key)
{
$val=$member[$key];
unset($member[$key]);
$member[$key]=$val;
}
}
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>";
my_asort($member);
echo "Sorted By user <br><br>";
foreach ($member as $user => $weight) {
echo "$user = $weight <br>";
}
echo "<br><br>";
my_ksort($member);
echo "Sorted By weight <br><br>";
foreach ($member as $user => $weight) {
echo "$user = $weight <br>";
}发布于 2015-03-20 15:42:37
两个问题:
您没有使用您创建的函数:
my_asort($member);
my_ksort($member);而且您必须在参数中对数组添加一个引用(&),因为除了修改数组之外,什么都不返回:
function my_asort(&$member)
function my_ksort(&$member)(我没有检查结果是否与实际的asort和ksort函数相对应,但由于它看起来像是学校的作业,我相信您现在已经得到了函数的输出。)
发布于 2015-03-20 15:49:07
代码中的任何地方都没有调用方法。您只是提供了方法定义,但没有调用。
https://stackoverflow.com/questions/29170333
复制相似问题