PHP array 相關函數
<?php
/*
array_reverse(array $array, bool $preserve_keys = false): array
return value: 一個順序相反的 array
Parameters: $array 要翻轉的 array, $preserve_keys 非數字 key 不影響, 設為 true 數字鍵保留
*/
$fruits = ['apples', 'oranges', 'pears'];
$fruitsReversed = array_reverse($fruits); // ['pears', 'oranges', 'apples']
print_r($fruits);
print_r($fruitsReversed);
/*
array_key_first(array $array): int|string|null
return value: 得到第一個 key
*/
$namesAssoc = ['first_name' => 'Peter','last_name' => 'Fisher'];
$keyAssoc = array_key_first($nameAssoc); // 'first_name
var_dump($keyAssoc);
/*
array_key_last(array $array): int|string|null
return value: 得到第一個 key
*/
$namesAssoc = ['first_name' => 'Peter','last_name' => 'Fisher'];
$keyAssoc = array_key_last($nameAssoc); // 'last_name
var_dump($keyAssoc);
/*
array_keys(array $array, mixed $search_value, bool $strict = false): array
return value: 所有 keys 組成的 array
parameters: $search 如果有指定, 只回傳該值的 keys, $strict 比對時是否嚴格比較
*/
$items = ['blue', 'green', 'black', 'red', 'blue', 1, '1', true];
$itemKeys = array_keys($items, '1', true); // [0 => 6]
print_r($itemKeys);
/*
is_array(mixed $value): bool 判斷 $value 是否為 array
range(string|int|float $start, string|int|float $end, int|float $step = 1): array
range(1, 10, 2) 回傳 [1,3,5,7,9]
range('a', 'd') 回傳 ['a', 'b', 'c', 'd']
*/
/*
shuffle(array &$array): bool
執行成功, 回傳 true, 執行失敗, 回傳 false
將 $array 打亂
*/
$basket = range(1, 25);
print_r($basket);
shuffle($basket);
print_r($basket);
/*
array_count_values(array $array): array
回傳 一個數組, key 是 $array 裡元素的 value, value 是 $array 元素的值出現的次數
*/
$orderItems = ['shoes', 'coat', 'shoes', 'socks'];
array_count_values($orderItems); // ['shoes' => 2, 'coat' => 1, 'socks' => 1]
/*
array_flip(array $array): array
回傳一個 array, 是 $array 的 key 與 value 對調, 如果本來的 value 出現多次, 則以最後出現為主
*/
$basket = ['socks', 'jeans', 'shoes', 'socks'];
array_flip($basket); // ['socks' => 3, 'jeans' => 1, 'shoes' => 2]
/*
count(Countable|array $value, int $mode = COUNT_NORMAL): int
回傳 $value 元素個數
$mode: 如果設定為 COUNT_RECURSIVE(或1), 會遞迴方式計算
*/
$items = [
'food' => 'sugur',
'drink' => 'water',
'websites' => [
'http://google.com',
'https://google.com'
],
'tutorials' => [
'php' => [
'PHP for beginners'
],
'docker' => [
'docker in motion'
],
'python' => [
'Hands on with Microservices with python',
'Masther Python Clean Coding'
]
]
];
print count($items); // 4
print count($items, COUNT_RECURSIVE); // 13
/*
array_replace(array $array, array ...$replacements): array
回傳替換後的 array
$array 要被替換的 array
*/
$order = [
'drink' => 'cock',
'main_meal' => 'steak',
'side_plate' => 'salad'
];
$alterOrder1 = array_replace($order, ['drink' => 'bear']);
$alterOrder2 = array_replace($order, ['drink' => 'bear'], ['drink' => 'whisky']);
$alterOrder3 = array_replace($order, ['drink' => 'bear'], ['drink' => 'whisky'], ['dessert' => 'cake');
print_r($order);
print_r($alterOrder1);
print_r($alterOrder2);
print_r($alterOrder3);
/*
key_exists(string|int $key, array $array): bool
*/
$heroes = ['Iron Man', 'Hulk', 'Black Widow', 'Rogue'];
$doesExist = key_exists(0, $heroes);