<?php
/**
* php 数组函数与方法
*/
header("Content-Type:text/html;charset=utf-8");
/**
* 二维数组根据某个字段排序
* 功能:按照用户的年龄倒序排序
*/
$sArr = array(
array(
'user_id' => 7409903,
'all_list' => 1,
'right_list' => 1,
),
array(
'user_id' => 1100411,
'all_list' => 4,
'right_list' => 4,
),
array(
'user_id' => 749903,
'all_list' => 1,
'right_list' => 0,
),
);
$sort = array(
'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' => 'right_list', //排序字段
);
$arrSort = array();
foreach($sArr AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $sArr);
}
var_dump($sArr);
echo '<hr/>';
/**
* 根据二维数组某个key获取所有值
* @param $array 查找的数据
* @param $index 键名
* @param $value 值
* @return array
*/
function get_by_index($array, $index) {
$newarray = array();
foreach ($array as $key=>$value) {
if(!empty($value[$index])) {
$newarray[] = $value[$index];
}
}
return $newarray;
}
/**
* 根据二维数组某个字段的值查找数组
* @param $array 查找的数据
* @param $index 键名
* @param $value 值
* @return array
*/
function filter_by_value($array, $index, $value) {
$newarray = array();
if(is_array($array) && count($array)>0) {
foreach(array_keys($array) as $key) {
$temp[$key] = $array[$key][$index];
if ($temp[$key] == $value) {
$newarray = $array[$key];
}
}
}
return $newarray;
}
/**
* 有一数组 $a=array(3,2,4,9,8);请将其重新排序,按从小到大的顺序列出。
* 可用冒泡法进行排序
*/
$a = array(3,2,4,9,8);
print_r(arraySort($a));
function arraySort(array $array) {
$length = count($array);
for($i = 0; $i < $length; $i++) {
for($j = 0; $j < $length - 1; $j++) {
if($array[$j] > $array[$j+1]) {
$tmp = $array[$j];
$array[$j] = $array[$j+1];
$array[$j+1] = $tmp;
}
}
}
return $array;
}