Php 如何按randNum对多维数组排序

Php 如何按randNum对多维数组排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,嗨,我已经创建了一个4行5列的数组。现在,我想按照数组中的随机数对数组进行排序,但不想知道如何对多维数组进行排序。我在网上看到,我可能已经为每个循环使用了一个,但不确定如果我要使用一个循环,应该将它放在哪里。此外,我也不知道如何告诉Sortaray我要排序的列,因为我没有任何输出id。任何帮助都将不胜感激 <?php $vyear = 1; $vmonth= 3; $date = "2015-11-25"; $t = 0; echo date("M-y") . "<br>"

嗨,我已经创建了一个4行5列的数组。现在,我想按照数组中的随机数对数组进行排序,但不想知道如何对多维数组进行排序。我在网上看到,我可能已经为每个循环使用了一个,但不确定如果我要使用一个循环,应该将它放在哪里。此外,我也不知道如何告诉Sortaray我要排序的列,因为我没有任何输出id。任何帮助都将不胜感激

<?php 
$vyear = 1;
$vmonth= 3;
$date = "2015-11-25";
$t = 0;

echo date("M-y") . "<br>";

$startdate = "2009/06/01";

$start = strtotime($date);

$currentdate = $start;

$newdate = strtotime (  $t .'month' , strtotime ( $date ) ) ;
$ndate = date ( 'm-Y-d' , $newdate );

echo $ndate;



 echo "<br>";
 echo "<br>";
 echo $date;

$times_table = array();
        for($i = 0; $i <= 3; $i++){
            $times_table[$i] = array();

        }
echo "<pre>";

       for($i = 0; $i <= 3; $i++){
             for($j = 0; $j <= 4; $j++){

               if ($j == 0){
                $times_table[$i][$j]=  "Version 4" ;
            }
                else if ($j == 1){
                $cur_date = date("M-y", $currentdate);

                $currentdate = strtotime('+1 month', $currentdate);

                $times_table[$i][$j]= $cur_date ;

          echo  $cur_date . ">". "<br />";
                }
                else{
                    $times_table[$i][$j]=  "gary" ;
                }
                if ($j == 3) {
                    $numbers = mt_rand(1, 100);
                    $times_table[$i][$j]= $numbers ;

                }
                if ($j == 4){

                    if($i == 0 || $i == 3)
                    {
                        $pay = "P";

                    $times_table[$i][$j]= $pay ;
                    }
                    else{
                        $int = "I";

                    $times_table[$i][$j]= $int ;

                    }
                }

            }

            }




// echo $times_table[1][3] ;
print_r($times_table);
 echo "</pre>";
    ?>
Dec-15
11-2015-25

2015-11-25
Nov-15>
Dec-15>
Jan-16>
Feb-16>
Array
(
    [0] => Array
        (
            [0] => Version 4
            [1] => Nov-15
            [2] => gary
            [3] => 2
            [4] => P
        )

    [1] => Array
        (
            [0] => Version 4
            [1] => Dec-15
            [2] => gary
            [3] => 9
            [4] => I
        )

    [2] => Array
        (
            [0] => Version 4
            [1] => Jan-16
            [2] => gary
            [3] => 43
            [4] => I
        )

    [3] => Array
        (
            [0] => Version 4
            [1] => Feb-16
            [2] => gary
            [3] => 45
            [4] => P
        )

)
Array
(
    [0] => Array
        (
            [0] => Version 4
            [1] => Nov-15
            [2] => gary
            [3] => 2
            [4] => P
        )

    [1] => Array
        (
            [0] => Version 4
            [1] => Dec-15
            [2] => gary
            [3] => 9
            [4] => I
        )

    [2] => Array
        (
            [0] => Version 4
            [1] => Jan-16
            [2] => gary
            [3] => 43
            [4] => I
        )

    [3] => Array
        (
            [0] => Version 4
            [1] => Feb-16
            [2] => gary
            [3] => 45
            [4] => P
        )

)

我添加了PHP的函数

usort-使用用户定义的比较函数按值对数组排序

这里,您的随机数在索引3中,我们正在比较该索引中的数字

因此,您的代码是:


谢谢你的回复。很抱歉,我可以问一下usort函数是如何工作的。新的,没有像这样排序。请参阅更新的答案!usort-使用用户定义的比较函数按值对数组进行排序-是否以相同的方式编写arsort?不能为arsort添加用户定义的回调,而是替换
返回$a[3]-$b[3]
返回$b[3]-$a[3]
以获得相反的结果
<?php 
$vyear = 1;
$vmonth= 3;
$date = "2015-11-25";
$t = 0;

echo date("M-y") . "<br>";

$startdate = "2009/06/01";

$start = strtotime($date);

$currentdate = $start;

$newdate = strtotime (  $t .'month' , strtotime ( $date ) ) ;
$ndate = date ( 'm-Y-d' , $newdate );

echo $ndate;



 echo "<br>";
 echo "<br>";
 echo $date;

$times_table = array();
        for($i = 0; $i <= 3; $i++){
            $times_table[$i] = array();

        }
echo "<pre>";

       for($i = 0; $i <= 3; $i++){
             for($j = 0; $j <= 4; $j++){

               if ($j == 0){
                $times_table[$i][$j]=  "Version 4" ;
            }
                else if ($j == 1){
                $cur_date = date("M-y", $currentdate);

                $currentdate = strtotime('+1 month', $currentdate);

                $times_table[$i][$j]= $cur_date ;

          echo  $cur_date . ">". "<br />";
                }
                else{
                    $times_table[$i][$j]=  "gary" ;
                }
                if ($j == 3) {
                    $numbers = mt_rand(1, 100);
                    $times_table[$i][$j]= $numbers ;

                }
                if ($j == 4){

                    if($i == 0 || $i == 3)
                    {
                        $pay = "P";

                    $times_table[$i][$j]= $pay ;
                    }
                    else{
                        $int = "I";

                    $times_table[$i][$j]= $int ;

                    }
                }

            }

            }


// echo $times_table[1][3] ;
print_r($times_table);
 echo "</pre>";

function sortByRandomNo($a, $b) {
    return $a[3] - $b[3];
}

usort($times_table, 'sortByRandomNo');

echo "<pre>";
print_r($times_table);
echo "</pre>";
Dec-15
11-2015-25

2015-11-25
Nov-15>
Dec-15>
Jan-16>
Feb-16>
Array
(
    [0] => Array
        (
            [0] => Version 4
            [1] => Nov-15
            [2] => gary
            [3] => 2
            [4] => P
        )

    [1] => Array
        (
            [0] => Version 4
            [1] => Dec-15
            [2] => gary
            [3] => 9
            [4] => I
        )

    [2] => Array
        (
            [0] => Version 4
            [1] => Jan-16
            [2] => gary
            [3] => 43
            [4] => I
        )

    [3] => Array
        (
            [0] => Version 4
            [1] => Feb-16
            [2] => gary
            [3] => 45
            [4] => P
        )

)
Array
(
    [0] => Array
        (
            [0] => Version 4
            [1] => Nov-15
            [2] => gary
            [3] => 2
            [4] => P
        )

    [1] => Array
        (
            [0] => Version 4
            [1] => Dec-15
            [2] => gary
            [3] => 9
            [4] => I
        )

    [2] => Array
        (
            [0] => Version 4
            [1] => Jan-16
            [2] => gary
            [3] => 43
            [4] => I
        )

    [3] => Array
        (
            [0] => Version 4
            [1] => Feb-16
            [2] => gary
            [3] => 45
            [4] => P
        )

)