ARRAYs从函数返回

时间:2015-04-16 10:38:36

标签: php arrays

我只是学习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'];

2 个答案:

答案 0 :(得分:2)

错误在于

return array('ar1'=>'$arr', 'ar2'=>'$arr2', 'ar3'=>'$arr3');

应该是

return array('ar1'=>$arr, 'ar2'=>$arr2, 'ar3'=>$arr3);

答案 1 :(得分:0)

我尝试了另外一个代码,如下所示。问题结束了...... 谢谢Prera​​k 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']);