排序(数组)出现意外结果



奇数。。。。。

// array sort test
$_ar = array(
  0 => "2015-02-23",
  1 => "2015-02-21",
  2 => "2015-02-28",
  3 => "2015-03-20",
  4 => "2015-03-14",
  5 => "2015-03-21",
  6 => "2015-02-21",
  7 => "2015-02-28",
  8 => "2015-03-07",
  9 => "2015-03-14",
);
$_ar = sort($_ar);
var_dump($_ar);
// returns bool(true)
$__ar = array(
  0 => "2015 02 23",
  1 => "2015 02 21",
  2 => "2015 02 28",
  3 => "2015 03 20",
  4 => "2015 03 14",
  5 => "2015 03 21",
  6 => "2015 02 21",
  7 => "2015 02 28",
  8 => "2015 03 07",
  9 => "2015 03 14",
);
$__ar = sort($__ar);
var_dump($__ar);
// returns bool(true)
$ar = array(
  0 => "20150223",
  1 => "20150221",
  2 => "20150228",
  3 => "20150320",
  4 => "20150314",
  5 => "20150321",
  6 => "20150221",
  7 => "20150228",
  8 => "20150307",
  9 => "20150314",
);
$ar = sort($ar);
var_dump($ar);
// returns bool(true)

我希望它返回按日期值排序的数组。我以为可能是-(连字符)或空格,但在我的所有示例中,我的PHP var_dump只是为每个实例返回bool(true)。有人能确认他们得到了同样的东西吗,或者指出我一定错过了什么。。。。我试过asort()-还是一样。

您不必分配sort()的返回值。有关sort()的更多信息,请参阅手册:http://php.net/manual/en/function.sort.php

还有一句话:

成功时返回TRUE,失败时返回FALSE。

因此:

sort($_ar);

旁注:

我不建议您在名称开头用下划线定义变量,因为这已经被定义的php变量使用了,例如超级全局变量或魔术常量

sortasort函数返回布尔值。只要调用这个函数,它就会对数组进行排序,不要存储它,它会返回true或false。使用下方的代码

// array sort test
$_ar = array(
  0 => "2015-02-23",
  1 => "2015-02-21",
  2 => "2015-02-28",
  3 => "2015-03-20",
  4 => "2015-03-14",
  5 => "2015-03-21",
  6 => "2015-02-21",
  7 => "2015-02-28",
  8 => "2015-03-07",
  9 => "2015-03-14",
);
 sort($_ar);
var_dump($_ar);
// returns bool(true)
$__ar = array(
  0 => "2015 02 23",
  1 => "2015 02 21",
  2 => "2015 02 28",
  3 => "2015 03 20",
  4 => "2015 03 14",
  5 => "2015 03 21",
  6 => "2015 02 21",
  7 => "2015 02 28",
  8 => "2015 03 07",
  9 => "2015 03 14",
);
$__ar = sort($__ar);
var_dump($__ar);
// returns bool(true)
$ar = array(
  0 => "20150223",
  1 => "20150221",
  2 => "20150228",
  3 => "20150320",
  4 => "20150314",
  5 => "20150321",
  6 => "20150221",
  7 => "20150228",
  8 => "20150307",
  9 => "20150314",
);
sort($ar);
var_dump($ar);
// returns bool(true)

希望这能帮助您