第一次随笔,写一些自己工作当中比较实用的函数吧。
数组函数:
1 array_column --返回数组当中指定的一列
用法一:返回数组当中指定的一列
应用场景:取出全班同学的id,去其他表查询这些同学的其他信息
好处:减少查询数据库的次数(通过id一次性查出所有信息)
列子:
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
)
);
$first_names = array_column($records, 'id');
print_r($first_names);
//结果
array('2135','3245');
?>
用法二:用二维数组当中的id作为数组的key
应用场景:通过array['id']取出数据
好处:用array_column代替foreach将二维数组当中的id作为数组的key,代码简洁,调用系统函数提高效率
列子:
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
)
);
//使用foreach
$records_key = array();
foreach($records as $k => $v){
$records_key[$v['id']] = $v;
}
print_r($first_names);
//调用array_column
$records_key = array_column($records, NULL,'id');
print_r($first_names);
?>
//结果
Array(
[2135] => Array(
[id] => 2135
[first_name] => John
[last_name] => Doe
)
[3245] => Array(
[id] => 3245
[first_name] => Sally
[last_name] => Smith
)
)
2 array_multisort --对多个数组或多维数组排序
用法一:多维数组排序
应用场景:将数据根据 价格 降序排序,根据 销量 升序排序
好处:
列子:
$data[] = array('price' => 67, 'sale_num' => 2);
$data[] = array('price' => 86, 'sale_num' => 1);
$data[] = array('price' => 85, 'sale_num' => 6);
$data[] = array('price' => 98, 'sale_num' => 2);
$data[] = array('price' => 86, 'sale_num' => 6);
$data[] = array('price' => 67, 'sale_num' => 7);
// 取得列的列表
$price= array_column($data,'price');
$sale_num= array_column($data,'sale_num');
// 把 $data 做为最后一个参数,以通用键排序
array_multisort($price, SORT_DESC, $sale_num, SORT_ASC, $data);
?>
//结果
price | sale_num -------+-------- 98 | 2 86 | 1 86 | 6 85 | 6 67 | 2 67 | 7
未完待续!