出于学习原因,我创建了这个小函数,它只是将数组中的值从小到大排序:
function mySort($list)
{
$number = count($list);
for($i=0; $i<$number-1; $i++)
{
if($list[$i] > $list[$i + 1])
{
$temp = $list[$i];
$list[$i] = $list[$i + 1];
$list[$i + 1] = $temp;
$i = 0;
}
}
}
你如何影响这个函数之外的数组呢?假设我有$a = [7,3,1,5,9];
而我只想输入mySort($a);
,现在数组中的元素位置将永久更改。
答案 0 :(得分:0)
您可以pass the argument by reference使该功能修改原始数组:
function mySort(&$list)
{
$number = count($list);
for($i=0; $i<$number-1; $i++)
{
if($list[$i] > $list[$i + 1])
{
$temp = $list[$i];
$list[$i] = $list[$i + 1];
$list[$i + 1] = $temp;
$i = 0;
}
}
}
或者,您可以返回修改后的数组,并将其存储在变量中,如下所示:
function mySort($list)
{
$number = count($list);
for($i=0; $i<$number-1; $i++)
{
if($list[$i] > $list[$i + 1])
{
$temp = $list[$i];
$list[$i] = $list[$i + 1];
$list[$i + 1] = $temp;
$i = 0;
}
}
return $list;
}
$a = array(7,3,1,5,9);
$array = mySort($a);
print_r($array);