关于PHP中array_multisort函数的问题
<?php$ar=array(array("10",11,100,100,"a"),array(1,2,"2",3,1));array_multisort($ar[0],...
<?php
$ar = array(
array("10", 11, 100, 100, "a"),
array( 1, 2, "2", 3, 1)
);
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1],
SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
本例中在排序后,第一个数组将变成 "10",100,100,11,"a"(被当作字符串以升序排列)。第二个数组将包含 1, 3, "2", 2,
1(被当作数字以降序排列)。
第一个数组按照字符串升序排列怎么就成"10",100,100,11,"a",SORT_STRING不是按照字母排序吗 展开
$ar = array(
array("10", 11, 100, 100, "a"),
array( 1, 2, "2", 3, 1)
);
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1],
SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
本例中在排序后,第一个数组将变成 "10",100,100,11,"a"(被当作字符串以升序排列)。第二个数组将包含 1, 3, "2", 2,
1(被当作数字以降序排列)。
第一个数组按照字符串升序排列怎么就成"10",100,100,11,"a",SORT_STRING不是按照字母排序吗 展开
2个回答
展开全部
<?php
$a=array("10",100,100,"a");
$b=array(1,3,"2",1);
array_multisort($a,SORT_ASC,SORT_STRING);
array_multisort($b,SORT_DESC,SORT_NUMERIC);
echo "<pre>";
var_dump($a);
var_dump($b);
echo "</pre>";
?>
SORT_STRING 是按照字母排序啊,不是按照字符串排序,是字母 a 是才字符 10字符串不算的。
array_multisort($a,SORT_ASC,SORT_STRING); 按升序排列 所以 a字母是最后的啊
你可以改
array_multisort($a,SORT_DESC,SORT_STRING); 这样 a 就是降序排列 出现一个了
追问
那前面的"10",100,100,11是怎么按照字母排序出来的
追答
SORT_STRING 是按照字母排序,
数字的字符串 和 数字 是按 整形数字->数字字符串 排序
SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。
不好好看文档,你这问题问了2遍了,你理解能力真有问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询