数组类
一、随机打乱多维数组的顺序(key 不变)
请求参数类型:Array
返回值类型:Array
返回值含义:返回被打乱顺序(但 key 不变)的数组
public function shuffleDoubleArray($doubleArray)
{
if (!is_array($doubleArray)) {
return $doubleArray;
}
$keys = array_keys($doubleArray);
shuffle($keys);
$random = array();
foreach ($keys as $key) {
$random[$key] = $doubleArray[$key];
}
return $random;
}
$obj = new ArrayHandle();
$arr = [
0 => [
'name' => 'tomlibao',
'age' => 24
],
1 => [
'name' => '光头强',
'age' => 20
],
2 => [
'name' => '潮巴蛋',
'age' => 30
]
];
$res = $obj->shuffleDoubleArray($arr);
print_r($res);
输出:
Array
(
[1] => Array
(
[name] => 光头强
[age] => 20
)
[2] => Array
(
[name] => 潮巴蛋
[age] => 30
)
[0] => Array
(
[name] => tomlibao
[age] => 24
)
)
二、对二维数组的某个列进行正倒叙排列
请求参数类型:Array,string,常量(非字符串,正序:SORT_ASC,倒序:SORT_DESC)
返回值类型:Array
返回值含义:返回被打乱顺序(但 key 不变)的数组
public function arraySort($doubleArray, $keys, $sort = SORT_DESC)
{
$keysValue = [];
foreach ($doubleArray as $k => $v) {
$keysValue[$k] = $v[$keys];
}
array_multisort($keysValue, $sort, $doubleArray);
return $doubleArray;
}
$obj = new ArrayHandle();
$arr = [
0 => [
'name' => 'tomlibao',
'age' => 24
],
1 => [
'name' => '光头强',
'age' => 20
],
2 => [
'name' => '潮巴蛋',
'age' => 30
]
];
$res = $obj->arraySort($arr ,'age', SORT_ASC);
print_r($res);
输出:
Array
(
[0] => Array
(
[name] => 光头强
[age] => 20
)
[1] => Array
(
[name] => tomlibao
[age] => 24
)
[2] => Array
(
[name] => 潮巴蛋
[age] => 30
)
)
info
注意:第三个参数不能使用字符串,而是使用常量。
三、获取多维数组某一列的总和
请求参数类型:Array,string
返回值类型:string
返回值含义:返回多维数组某一列计算后的总和
$obj = new ArrayHandle();
$arr = [
0 => [
'name' => 'tomlibao',
'age' => 24
],
1 => [
'name' => '光头强',
'age' => 20
],
2 => [
'name' => '潮巴蛋',
'age' => 30
]
];
$res = $obj->getArrFieldSum($arr ,'age');
print_r($res);
public function getArrFieldSum($doubleArray, $field)
{
$array = array_column($doubleArray, $field);
return array_sum($array);
}
输出:74