一夢千年系列
今日函式
array_uintersect
、array_unique
、array_unshift
、array_values
、array_walk_recursive
array_uintersect1
計算陣列的交集,只比較鍵值
- 說明
array_uintersect(array $array, array ..., callback $func) : array
- 引數
array
計算交集的原陣列
...
更多用於比較的陣列
func
比較鍵值是否相同的自定義函式
- 返回值
返回一個交易陣列,只比較鍵值,使用自定義函式比較
- 範例
$array1 = [
'name' => 'swk',
'age' => 22,
'sex' => 1
];
$array2 = [
'name' => 'zbj',
'age' => 22,
'sex' => 2
];
function func($a, $b) {
return 0;
}
$newArray = array_uintersect($array1, $array2, 'func');
print_r($newArray);
以上範例會輸出
Array
(
[name] => swk
[age] => 22
[sex] => 1
)
- 特別注意
只比較鍵值,使用者自定義函式比較的時候返回0表示相同,非0表示不同
array_unique2
移除陣列中重複的值
- 說明
array_unique(array $array, int $sort_flags = SORT_STRING) : array
- 引數
array
需要操作的陣列
sort_flags
移除重複的鍵值項的時候,需要先進行鍵值排序,後面的被移除到,這個引數是決定排序的,一般用不到
- 返回值
返回一個陣列,把重複的鍵值項移除掉
- 範例
$array = [4, 1, 7, 1, 9, 4];
$newArray = array_unique($array);
print_r($newArray);
以上範例輸出
Array
(
[0] => 4
[1] => 1
[2] => 7
[4] => 9
)
- 特別說明
移除陣列中重複的值
array_unshift3
向陣列開頭插入一個或者多個值
- 說明
array_unshift(array &$array, mixed ...) : int
- 引數
array
需要操作的陣列
...
插入的值
- 返回值
返回新陣列元素的個數
- 範例
$array = [4, 1, 7];
array_unshift($array, 1, 2);
print_r($array);
以上範例輸出
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 1
[4] => 7
)
- 特別說明
向陣列開頭插入一個或者多個值
array_values4
返回陣列中所有的值組成的新陣列
- 說明
array_values(array $array) : array
- 引數
array
需要操作的陣列
- 返回值
返回一個新陣列,只包含原陣列的鍵值
- 範例
$array = [
'name' => 'swk',
'age' => 22,
'sex' => 1
];
$newArray = array_values($array);
print_r($newArray);
以上範例輸出
Array
(
[0] => swk
[1] => 22
[2] => 1
)
- 特別說明
返回陣列中所有值組成的索引陣列
array_walk_recursive5
對陣列中每個元素遞迴的執行回撥函式
- 說明
array_walk_recursive(array &$array, callback $func, mixed $customer_data = null) : bool
- 引數
array
需要操作的陣列
func
預設情況接受倆個引數,鍵值和鍵名,如果customer_data有值,則是第三個引數
customer_data
使用者自定義資料
- 返回值
成功是返回true,失敗返回false
- 範例
$array = [
'name' => 'swk',
'age' => 22,
'sex' => 1
];
function func($value, $key)
{
// 自定義處理過程
echo $value . "\r\n";
}
array_walk_recursive($array, 'func');
以上範例輸出
swk
22
1
- 特別說明
對陣列中的每個元素遞迴的執行回撥函式