PHP array 相关函数

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);

<<:  【领域展开 05 式】 WordPress.org 与 WordPress.com,你好.org

>>:  Day 20 - Android Studio的EditText的基本使用

Day 4 Matrix capsules with EM routing

前言 接续着昨天讲到的EM routing,今天来将EM routing做进一步的解释 EM rou...

Day 19 - 安装 AlexeyAB/darknet ON Amazon Linux 2

Day 19 - 安装 AlexeyAB/darknet ON Amazon Linux 2 今天的...

【Day 2】词嵌入与BERT的输入

如何从实战层面认识BERT BERT的研究与应用可以分为不同的层次。你可以钻研BERT的模型技术细节...

DAY4 Python基础教学(二)

DAY4 Python基础教学(二) 前言 今天要介绍一些基础运算式,不过最简单的加减乘除就不赘述了...

DAY3-JAVA的运算子和运算式

今天就来看看JAVA中的运算子和运算式吧! 这边就先简单介绍一下谁是运算元谁是运算子吧~ int b...