<?php
// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
一直想不明白$data跟$volume的关系,这个函数内部的处理思路是怎样的?
// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
一直想不明白$data跟$volume的关系,这个函数内部的处理思路是怎样的?
row2[volume],row2[edition]
row3[volume],row3[edition]
.
.
.
然后 foreach 循环,把 第一列取出来,单独赋值给另一个数组,名字叫 volume( 和原来数组下标一个名字儿一,不矛盾)array_multisort 排序的时候,先按照第一个数组值排序,第一个数组值相同的情况下,按第二个。
(不明白看manual)
所以有无关联键是无关紧要的
写成
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
还是
foreach ($data as $row) {
$volume[] = $row['volume'];
$edition[] = $row['edition'];
}
结果是一样的
第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
自定义一个php函数,实现系统的那个函数的功能