【每日函式】每日函式(2021.08.14)

夢中程式設計師發表於2021-08-14

一夢千年系列

今日函式array_uintersectarray_uniquearray_unshiftarray_valuesarray_walk_recursive

array_uintersect1

計算陣列的交集,只比較鍵值

  1. 說明
array_uintersect(array $array, array ..., callback $func) : array
  1. 引數

array計算交集的原陣列

...更多用於比較的陣列

func比較鍵值是否相同的自定義函式

  1. 返回值

返回一個交易陣列,只比較鍵值,使用自定義函式比較

  1. 範例
$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
)
  1. 特別注意

只比較鍵值,使用者自定義函式比較的時候返回0表示相同,非0表示不同

array_unique2

移除陣列中重複的值

  1. 說明
array_unique(array $array, int $sort_flags = SORT_STRING) : array
  1. 引數

array需要操作的陣列

sort_flags移除重複的鍵值項的時候,需要先進行鍵值排序,後面的被移除到,這個引數是決定排序的,一般用不到

  1. 返回值

返回一個陣列,把重複的鍵值項移除掉

  1. 範例
$array = [4, 1, 7, 1, 9, 4];

$newArray = array_unique($array);

print_r($newArray);

以上範例輸出

Array
(
    [0] => 4
    [1] => 1
    [2] => 7
    [4] => 9
)
  1. 特別說明

移除陣列中重複的值

array_unshift3

向陣列開頭插入一個或者多個值

  1. 說明
array_unshift(array &$array, mixed ...) : int
  1. 引數

array需要操作的陣列

...插入的值

  1. 返回值

返回新陣列元素的個數

  1. 範例
$array = [4, 1, 7];

array_unshift($array, 1, 2);

print_r($array);

以上範例輸出

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 1
    [4] => 7
)
  1. 特別說明

向陣列開頭插入一個或者多個值

array_values4

返回陣列中所有的值組成的新陣列

  1. 說明
array_values(array $array) : array
  1. 引數

array需要操作的陣列

  1. 返回值

返回一個新陣列,只包含原陣列的鍵值

  1. 範例
$array = [
    'name' => 'swk',
    'age' => 22,
    'sex' => 1
];

$newArray = array_values($array);

print_r($newArray);

以上範例輸出

Array
(
    [0] => swk
    [1] => 22
    [2] => 1
)
  1. 特別說明

返回陣列中所有值組成的索引陣列

array_walk_recursive5

對陣列中每個元素遞迴的執行回撥函式

  1. 說明
array_walk_recursive(array &$array, callback $func, mixed $customer_data = null) : bool
  1. 引數

array需要操作的陣列

func預設情況接受倆個引數,鍵值和鍵名,如果customer_data有值,則是第三個引數

customer_data使用者自定義資料

  1. 返回值

成功是返回true,失敗返回false

  1. 範例
$array = [
    'name' => 'swk',
    'age' => 22,
    'sex' => 1
];

function func($value, $key)
{
    // 自定義處理過程
    echo $value . "\r\n";
}

array_walk_recursive($array, 'func');

以上範例輸出

swk
22
1
  1. 特別說明

對陣列中的每個元素遞迴的執行回撥函式

相關文章