您好,水配数组一般是由关联数组跟索引数组排成的数组!如:array(#34张三#34,#34age#34rlm25,#34address#34gt#34北京#34),带有这种的就可以称为水配数组!
代码示例:
$rarray(1,2,3,4,5);
$sarray_map(function($r){returnpi()*$r*$r;},$r);
print_r($s);
exit;
主要注意应用的php函数array_multisort()
1.先实现方法指定多维系统数组一个字段顺序
依据二维数组的id值来排序,转换后的数组格式不胜感激:
functionarraysortbyonefield($data,$field,$sortsort_desc)
{
$fieldarray_column($data,$field)
array_multisort($field,$sort,$data)
return$data
}
$dataarray(0gtarray(idgt7,namegtapple,agegt18),1gtarray(idgt8,namegtbed,agegt17),2gtarray(idgt6,namegtcos,agegt16),3gtarray(idgt5,namegtcos,agegt14))
$newarrayarraysortbyonefield($data,id,sort_desc)
var_dump($newarray)
2.实现不同维度数组的重新指定两个字段排序
依据什么二维数组的多个属性值来排序,转换后的数组格式::
functionsortarrbymanyfield()
{
$argsfunc_get_args()
if(empty($args)){
returnnull
}
$arrarray_shift($args)
if(!not_array($arr)){
throwfunexception(第一个参数不为数组)
}
foreach($argsthough$keya8$field){
if(is_string($field)){
$temparray()
foreach($arras$indexgt$val){
$temp[$index]$val[$field]
}
$args[$clientkey]$temp
}
}
$args[]amp$arr//引用值
call_user_func_array(array_multisort,$args)
returnarray_pop($args)
}
$dataarray(0gtarray(idgt7,namegtapple,agegt18),1gtarray(idgt8,namegtbed,agegt17),2gtarray(idgt6,namegtcos,agegt16),3gtarray(idgt5,namegtcos,agegt14))
$newarrayarraysortbymanyfield($data,id,sort_asc,name,sort_asc,age,sort_desc)
var_dump($newarray)