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