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

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

一夢千年系列

今日函式array_key_lastarray_keysarray_maparray_merge_recursivearray_merge

array_key_last1

獲取陣列中的最後一個鍵名

  1. 說明
array_key_last(array $array) : mixed
  1. 引數

array需要操作的陣列

  1. 返回值

返回陣列中最有一個鍵名,如果陣列為空,則返回null

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

$res = array_key_last($array);

var_dump($res);

以上範例會輸出

string(3) "sex"
  1. 特別注意

不會影響原陣列的內部指標

array_keys2

返回陣列中所有或者部分鍵名組成的陣列

  1. 說明
array_keys(array $array) : array
array_keys(array $array, mixed $value, bool $strict = false) : array
  1. 引數

array需要操作的陣列

value如果指定了這個引數,只有包含這個鍵值的鍵名才會返回

strict是否嚴格比較

  1. 返回值

返回一個陣列,包含所有或者部分鍵名組成的陣列

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

$res = array_keys($array);

print_r($res);

以上範例會輸出

Array
(
    [0] => name
    [1] => age
    [2] => sex
)
  1. 特別注意

沒有特別注意的地方

array_map3

為陣列中每個元素應用回撥函式

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

func回撥函式,應用到陣列中的每個元素上

array需要遍歷的陣列

...更多需要遍歷的陣列

  1. 返回值

返回一個新陣列,經過回撥函式處理的陣列

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

function func($a)
{
    return $a * $a;
}

$newArray = array_map('func', $array);

print_r($newArray);

以上範例輸出

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

如果只有一個陣列,並且這個陣列的鍵名時候字串的話,新陣列會保留原鍵名。如果是多個陣列,陣列長度不一樣的話,短的陣列會被null補充。如果回撥函式是null,則會合並陣列

array_merge_recursive4

遞迴的合併一個或者多個陣列,如果有相同的鍵名,則鍵值合併為新陣列,不會覆蓋

  1. 說明
array_merge_recursive(array ...) : array
  1. 引數

...需要合併的陣列,可以不傳,或者1個,或者多個

  1. 返回值

返回一個遞迴合併的陣列

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

$array2 = [
    'info' => [
        'name' => 'zbj',
        'age' => 22
    ]
];

$newArray = array_merge_recursive($array1, $array2);

print_r($newArray);

以上範例輸出

Array
(
    [info] => Array
        (
            [name] => Array
                (
                    [0] => swk
                    [1] => zbj
                )

            [age] => Array
                (
                    [0] => 22
                    [1] => 22
                )

        )

)
  1. 特別說明

如果不傳引數,則返回一個空陣列

array_merge5

陣列合並,相同的鍵名,後面的鍵值覆蓋前面的

  1. 說明
array_merge(array ...) : array
  1. 引數

...需要合併的陣列

  1. 返回值

返回一個陣列,相同的鍵名後面的覆蓋前面的

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

$array2 = [
    'info' => [
        'name' => 'zbj',
        'age' => 22
    ]
];

$newArray = array_merge($array1, $array2);

print_r($newArray);

以上範例輸出

Array
(
    [info] => Array
        (
            [name] => zbj
            [age] => 22
        )

)
  1. 特別說明

如果不傳引數,則返回一個空陣列

相關文章