php获取数组键名与键值
php遍历数组的方法,php遍历数组怎么判断最后一次循环?
php遍历数组的方法,php遍历数组怎么判断最后一次循环?
$arrayarray(a,b,c,d); $countcount($array); foreach($arrayas$key$val){ if($key 1$count){ echo最后一次; } }
编程求解:PHP多维数组按值排序,该用什么办法?
主要用到的PHP函数 array_multisort()
1.先实现指定多维数组一个字段排序
根据二维数组的id值来排序,转换后的数组格式如下:
function arraySortByOneField($data, $field, $sort SORT_DESC)
{
$field array_column($data, $field)
array_multisort($field,$sort,$data)
return $data
}
$data array(0gtarray(idgt7, namegtApple, agegt 18),1gtarray(idgt8, namegtBed, agegt17),2gtarray(idgt6, namegtCos, agegt16),3gtarray(idgt5, namegtCos, agegt14))
$newArray arraySortByOneField($data, id, SORT_DESC)
var_dump($newArray )
2.实现多维数组的指定两个字段排序
根据二维数组的多个属性值来排序,转换后的数组格式如下:
function sortArrByManyField()
{
$args func_get_args()
if(empty($args)){
return null
}
$arr array_shift($args)
if(!is_array($arr)){
throw new Exception(第一个参数不为数组)
}
foreach($args as $key gt $field){
if(is_string($field)){
$temp array()
foreach($arr as $indexgt $val){
$temp[$index] $val[$field]
}
$args[$key] $temp
}
}
$args[] amp$arr//引用值
call_user_func_array(array_multisort,$args)
return array_pop($args)
}
$data array(0gtarray(idgt7, namegtApple, agegt 18),1gtarray(idgt8, namegtBed, agegt17),2gtarray(idgt6, namegtCos, agegt16),3gtarray(idgt5, namegtCos, agegt14))
$newArray arraySortByManyField($data, id, SORT_ASC, name, SORT_ASC, age, SORT_DESC)
var_dump($newArray )