我只是学习PHP,很抱歉这可能是一个简单的问题..
PHP代码无法从函数" bubble_sort"返回值。
我有3个阵列。
$ filesmtime:文件修改时间
Array ( [0] => 1419242709 [1] => 1428634648 [2] => 1428604291 [3] => 1428500914 [4] => 1428551552 [5] => 1428459515 [6] => 1428614848 [7] => 1428633569 [8] => 1428450275 [9] => 1428486035 [10] => 1428909099 [11] => 1428506793 .....
$ files:文件路径名
Array ( [0] => ./reports/2014/12/10038.png [1] => ./reports/2015/04/10404.png [2] => ./reports/2015/04/10151.png .....
$ filesfname:文件名
Array ( [0] => 10038.png [1] => 10404.png [2] => 10151.png [3] => 11346.png [4] => 11768.png [5] => 11001.png [6] => 10239.png [7] => 10395.png [8] => 10924.png .....
代码是:
function bubble_sort($arr, $arr2, $arr3) {
$size = count($arr);
for ($i=0; $i<$size; $i++) {
for ($j=0; $j<$size-1-$i; $j++) {
if ($arr[$j+1] < $arr[$j]) {
swap($arr, $j, $j+1);
swap($arr2, $j, $j+1);
swap($arr3, $j, $j+1);
}
}
}
return array('ar1'=>$arr, 'ar2'=>$arr2, 'ar3'=>$arr3);
}
function swap(&$arr, $a, $b) {
$tmp = $arr[$a];
$arr[$a] = $arr[$b];
$arr[$b] = $tmp;
}
$arrs = bubble_sort($filesmtime, $files, $filesfname);
echo $arrs['ar1'];
echo $arrs['ar2'];
echo $arrs['ar3'];
答案 0 :(得分:2)
错误在于
return array('ar1'=>'$arr', 'ar2'=>'$arr2', 'ar3'=>'$arr3');
应该是
return array('ar1'=>$arr, 'ar2'=>$arr2, 'ar3'=>$arr3);
答案 1 :(得分:0)
我尝试了另外一个代码,如下所示。问题结束了...... 谢谢Prerak Sola,Dani Dudas和mariobgr
function bubble_sort($arr, $arr2, $arr3) {
$size = count($arr);
for ($i=0; $i<$size; $i++) {
for ($j=0; $j<$size-1-$i; $j++) {
if ($arr[$j+1] < $arr[$j]) {
$tmp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $tmp;
$tmp2 = $arr2[$j];
$arr2[$j] = $arr2[$j+1];
$arr2[$j+1] = $tmp2;
$tmp3 = $arr3[$j];
$arr3[$j] = $arr3[$j+1];
$arr3[$j+1] = $tmp3;
}
}
}
return array('ar1'=>$arr, 'ar2'=>$arr2, 'ar3'=>$arr3);
}
$arrs = bubble_sort($filesmtime, $files, $filesfname);
var_dump($arrs['ar1']);
var_dump($arrs['ar2']);
var_dump($arrs['ar3']);