首页 编程语言 php

php array_column(), PHP数组学习笔记

// array_column — 返回输入数组中指定列的值

// array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array

// array_column() 返回 array 中键名为 column_key 的一列值

// 如果指定了可选参数 index_key,则使用输入数组中 index_key 列的值将作为返回数组中对应值的键

// $arr4 = [

// ['id' => 2135,'first_name' => 'John','last_name' => 'Doe'],

// ['id' => 3245,'first_name' => 'Sally','last_name' => 'Smith'],

// ['id' => 5342,'first_name' => 'Jane','last_name' => 'Jones'],

// ['id' => 5623,'first_name' => 'Peter','last_name' => 'Doe']

// ];

// $column = array_column($arr4,'first_name');

// Array

// (

// [0] => John

// [1] => Sally

// [2] => Jane

// [3] => Peter

// )

// $column = array_column($arr4,'last_name','id');

// Array

// (

// [2135] => Doe

// [3245] => Smith

// [5342] => Jones

// [5623] => Doe

// )

// class User

// {

// public $username;

// private $username;

// public function __construct(string $username)

// {

// $this->username = $username;

// }

// private 属性 要用__get()、__isset()

// public function __get($prop)

// {

// return $this->$prop;

// }

// public function __isset($prop)

// {

// return isset($this->$prop);

// }

// 如果不提供 __isset(),会返回空数组

// }

// $users = [

// new User('user1'),

// new User('user2'),

// new User('user3')

// ];

// $column = array_column($users,'username');

// Array

// (

// [0] => user1

// [1] => user2

// [2] => user3

// )

// echo '<pre>';

// print_r($column);

// echo '</pre>';

-------------------------------------------------------------------------------------------------------------------------

// array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

// array_combine(array $keys, array $values): array

// 返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值

// 自 PHP 8.0.0 起,如果 keys 和 values 的元素数量不同,将会抛出 ValueError

// $a = array('green', 'red', 'yellow');

// $b = array('avocado', 'apple', 'banana');

// $c = array_combine($a, $b);

// Array

// (

// [green] => avocado

// [red] => apple

// [yellow] => banana

// )

// echo '<pre>';

// print_r($c);

// echo '</pre>';

-------------------------------------------------------------------------------------------------------------------------

// array_merge — 合并一个或多个数组

// array_merge(array ...$arrays): array

// 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组

// 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将 不会 覆盖原来的值,而是附加到后面

// 如果输入的数组存在以数字作为索引的内容,则这项内容的键名会以连续方式重新索引

// $array1 = array("color" => "red", 2, 4);

// $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);

// $result = array_merge($array1, $array2);

// Array

// (

// [color] => green

// [0] => 2

// [1] => 4

// [2] => a

// [3] => b

// [shape] => trapezoid

// [4] => 4

// )

// $array1 = array();

// $array2 = array(1 => "data");

// $result = array_merge($array1, $array2);

// Array

// (

// [0] => data

// )

// $array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');

// $array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');

// $result = $array1 + $array2;

// 第一个数组的键名将会被保留

// 在两个数组中存在相同的键名时,第一个数组中的同键名的元素将会被保留,第二个数组中的元素将会被忽略

// Array

// (

// [0] => zero_a

// [2] => two_a

// [3] => three_a

// [1] => one_b

// [4] => four_b

// )

// $beg = 'foo';

// $end = array(1 => 'bar');

// $result = array_merge((array)$beg,$end);

// Array

// (

// [0] => foo

// [1] => bar

// )

// echo '<pre>';

// print_r($result);

// echo '</pre>';

-------------------------------------------------------------------------------------------------------------------------

// array_walk — 使用用户自定义函数对数组中的每个元素做回调处理

// array_walk(array|object &$array, callable $callback, mixed $arg = null): bool

// array_walk() 不会受到 array 内部数组指针的影响

// array_walk() 会遍历整个数组而不管指针的位置

// $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

// function test_alter(&$item1,$key,$prefix)

// {

// $item1 = "$prefix : $item1";

// }

// array_walk($fruits,'test_alter','fruit');

// function test_print($item2,$key)

// {

// echo "$key.$item2\n";

// }

// array_walk($fruits,'test_print');

// $elements = ['a', 'b', 'c'];

// array_walk($elements,function($value,$key){

// echo "{$key} => {$value}<br>";

// });

// 0 => a

// 1 => b

// 2 => c

-------------------------------------------------------------------------------------------------------------------------

// array_values — 返回数组中所有的值

// array_values(array $array): array

// array_values() 返回 input 数组中所有的值并给其建立数字索引

// $array = array("size" => "XL", "color" => "gold");

// $values = array_values($array);

// Array

// (

// [0] => XL

// [1] => gold

// )

// echo '<pre>';

// print_r($values);

// echo '</pre>';


相关推荐