用 sort 函数排序数组,会改变数组的索引,比如这里,原来数字 3 的索引值是 0 ,重新排序以后, 数字 3 的索引号就变成了 1 。 如果你想保持这个索引值不变,对数组进行排序,可以使用 asort() ... 这个函数一般会用来对关联类型的数组去排序 ...
先试一下 ... 把 sort 换成 asrot ...
保存 ... 你会看到,对 $some_number 这个数组重新排序以后,数组项目的索引号还是以前的索引号 ... 排在第一的数字 1 ,它的索引值是 2 ,因为这就是它之前的索引值 ...
下面,我们再用这个函数去排列一下关联数组 ... 这里我已经定义好了一个关联数组 ... 用来表示水果的价格的 $fruit_prices ...
$fruit_prices = ['banana' => '9.3', 'orange' => '7.5', 'apple' => '8.6', ];
先输出这个数组 ... $fruit_prices,
再用 asrot 对它排下顺序 ... asort($fruit_prices),
最后,再输出这个重新排序之后的 $fruit_prices ...
用 asort 重新排序以后,数组里面的键与值的对应关系不会发生改变 ...
数组项目的值最小的是七块五一斤的桔子 ... 然后是 八块六的苹果,最后是九块三的香焦 ...
想反过来排的话,可以使用 arsort 函数 ...
arsort($fruit_prices),
asort 还有 arsort 都是根据数组项目的值去排序 ... 如果你想按照数组项目的名字,也就是数组项目的键,去排序的话,要用的是 ksort ...
ksort($fruit_prices),
现在,排序之后,排在第一个的是 apple ,然后是 banana ... 因为小写的字母 a 小于小写的字母 b ...
最后是 orange ..
跟它对应的,还有一个 krsort .. 它可以使用倒序排列 ...
krsort($fruit_prices),