今天跟客户端查了API签名,打算按照ascii参数升序排序,然后进行sha1处理,但是用sort方式排序的时候,我发现了一个神奇的问题php>$a=['ZfQW5yH1IkBmn13smeEnWQ==',0,'502857731'];php>sort($a,0);php>var_dump($a);array(3){[0]=>string(24)"ZfQW5yH1IkBmn13smeEnWQ=="[1]=>int(0)[2]=>string(9)"502857731"}//这里调整数组值的顺序php>$a=['ZfQW5yH1IkBmn13smeEnWQ==','502857731',0];php>sort($a,0);php>var_dump($a);array(3){[0]=>int(0)[1]=>string(9)"502857731"[2]=>string(24)"ZfQW5yH1IkBmn13smeEnWQ=="}问题出现了,两个排序的顺序不一样!我从stackoverflow[Numericsortanarraywithmixedtypesvalues]找到了答案,重点是:对具有混合类型值的数组进行排序时要小心,因为sort()会产生不可预测的结果。
