php基础-数组整理(二)
2020-03-23 10:05:39 来源:admin 点击:830
PHP array_change_key_case() 函数
Array必填
case 可选。可能的值:
CASE_LOWER - 默认值。将数组的键转换为小写字母。
CASE_UPPER - 将数组的键转换为大写字母。
PHP array_chunk() 函数
把数组分割为带有两个元素的数组:array_chunk(array,size,preserve_key);
preserve_key
可选。可能的值:
true - 保留原始数组中的键名。
false - 默认。每个结果数组使用从零开始的新数组索引。
<?php
$cars=array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
print_r(array_chunk($cars,2));
?>
PHP array_column() 函数
从记录集中取出 last_name 列:
<?php
// 表示由数据库返回的可能记录集的数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Bill',
'last_name' => 'Gates',
),
array(
'id' => 4767,
'first_name' => 'Steve',
'last_name' => 'Jobs',
),
array(
'id' => 3809,
'first_name' => 'Mark',
'last_name' => 'Zuckerberg',
)
);
$last_names = array_column($a, 'last_name');
print_r($last_names);
?>
输出:
Array
(
[0] => Gates
[1] => Jobs
[2] => Zuckerberg
)
//用id为列则输出如下
$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);
Array
(
[5698] => Gates
[4767] => Jobs
[3809] => Zuckerberg
)
PHP array_combine() 函数
array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。array_combine(keys,values);
注释:键名数组和键值数组的元素个数必须相同!
如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。
PHP array_count_values() 函数
对数组中的所有值进行计数:
<?php
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
?>
//Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
PHP array_diff() 函数
比较两个数组的键值,并返回差集:
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
?>
//Array ( [d] => yellow )
array_diff_assoc()
比较两个数组的键和值,并返回差集:
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>
PHP array_diff_uassoc() 函数
比较两个数组的键名和键值(使用用户自定义函数来比较键名),并返回差集:
<?php
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("d"=>"red","b"=>"green","e"=>"blue");
$result=array_diff_uassoc($a1,$a2,"myfunction");
print_r($result);
?>
PHP array_flip() 函数
反转数组中所有的键以及它们关联的值:
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$result=array_flip($a1);
print_r($result);
?>
// Array ( [red] => a [green] => b [blue] => c [yellow] => d )
PHP array_intersect() 函数
比较两个数组的键值,并返回交集:
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_intersect($a1,$a2);
print_r($result);
?>
PHP array_key_exists() 函数
检查键名 "Volvo" 是否存在于数组中:
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Volvo",$a))
{
echo "键存在!";
}
else
{
echo "键不存在!";
}
?>
//键存在!
PHP array_keys() 函数
返回包含数组中所有键名的一个新数组:
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a));
?>
Array ( [0] => Volvo [1] => BMW [2] => Toyota )
使用 value 参数:返回那个键值的键名
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a,"Highlander"));
?>
// Array ( [0] => Toyota )
PHP array_map() 函数
将函数作用到数组中的每个值上,每个值都乘以本身,并返回带有新值的数组:
<?php
function myfunction($v)
{
return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));
?>
Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
使用两个数组:
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return "same";
}
return "different";
}
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction",$a1,$a2));
?>
// Array ( [0] => different [1] => same [2] => different )
将数组中值的所有字母改为大写:
<?php
function myfunction($v)
{
$v=strtoupper($v);
return $v;
}
$a=array("Animal" => "horse", "Type" => "mammal");
print_r(array_map("myfunction",$a));
?>
Array ( [Animal] => HORSE [Type] => MAMMAL )
将函数名赋值为 null 时:
<?php
$a1=array("Dog","Cat");
$a2=array("Puppy","Kitten");
print_r(array_map(null,$a1,$a2));
?>
Array ( [0] => Array ( [0] => Dog [1] => Puppy ) [1] => Array ( [0] => Cat [1] => Kitten ) )
PHP array_walk() 函数
对数组中的每个元素应用用户自定义函数:
<?php
function myfunction($value,$key)
{
echo "The key $key has the value $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
?>
The key a has the value red
The key b has the value green
The key c has the value blue