第一次隨筆,寫一些自己工作當中比較實用的函數吧。
數組函數:
1 array_column --返回數組當中指定的一列
用法一:返回數組當中指定的一列
應用場景:取出全班同學的id,去其他表查詢這些同學的其他信息
好處:減少查詢數據庫的次數(通過id一次性查出所有信息)
列子:
<?php
$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,代碼簡潔,調用系統函數提高效率
列子:
<?php
$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 --對多個數組或多維數組排序
用法一:多維數組排序
應用場景:將數據根據 價格 降序排序,根據 銷量 升序排序
好處:
列子:
<?php
$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
未完待續!