PHP数组

作者: 梦安web开发 | 来源:发表于2023-07-04 08:06 被阅读0次

数组是键值对集合,键只能是两类:整数、字符串;值可以是整数型、浮点型、字符型、布尔型、数组和对象组成。 [0]=>1 0是键名,1是键值。

数组的创建

数组的创建可以通过,函数array()或者使用[ ]进行数组的创建。

<?php
 $array1 = array(1, 2, 3, 4);
 $array2 = array("color" => "blue", "name" => "picture", "number" =>   "01");
 $array3 = [1, 2, 3, 4];
 $array4 = [1 => 2, 2 => 4, 5 => 6, 3 => 8, 10];
 $array5=array(1=>2,2=>4,2=>6);
?>

数组的键名转换大写字母或小写字母

array_change_key_case(array,case)

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
print_r(array_change_key_case($age,CASE_UPPER));
?>

数组分割为新的数组块

$cars=array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
print_r(array_chunk($cars,2));
//输出
//Array
//(
//    [0] => Array
//        (
//            [0] => Volvo 
//            [1] => BMW
//        )

//    [1] => Array
//        (
//            [0] => Toyota
//            [1] => Honda
//        )

//    [2] => Array
//        (
//            [0] => Mercedes
//            [1] => Opel
//        )
//)
?>

数组 输出某个单一列的值

array_column(array,column_key,index_key);

<?php
// 可能从数据库中返回数组
$a = array(
  array(
    'id' => 5698,
    'first_name' => 'Peter',
    'last_name' => 'Griffin',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Ben',
    'last_name' => 'Smith',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Joe',
    'last_name' => 'Doe',
  )
);
$last_names = array_column($a, 'last_name');
print_r($last_names);

//输出
//Array
//(
//  [0] => Griffin
//  [1] => Smith
//  [2] => Doe
//)
?>

通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。

array_combine()函数通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值。
键名数组和键值数组的元素个数必须相同!

<?php
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");

$c=array_combine($fname,$age);
print_r($c);
//Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
?>

统计数组中所有值出现的次数

array_count_values()

<?php
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
?>
//Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )

比较两个数组的值,并返回差集

array_diff(array1,array2,array3...)

<?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(array1,array2,array3...);

<?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);
//Array ( [d] => yellow )
?>

把一个或多个数组合并为一个数组

array_merge(array1,array2,array3...)

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
?>
//Array
//(
//    [a] => red
//    [b] => yellow
//    [c] => blue
//)

检查某个数组中是否存在指定的键名

函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
array_key_exists(key,array)

<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Volvo",$a))
{
    echo "Key exists!";
}
else
{
    echo "Key does not exist!";
}
//Key exists!
?>

获取指定数组的第一个键值

array_key_first ( array $array )

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
 
$firstKey = array_key_first($array);
 
echo $firstKey;
//a
?>

获取指定数组的最后一个键值

array_key_last()

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
 
$lastKey = array_key_last($array);
 
echo $lastKey;
//c
?>

将指定数量的带有指定值的元素插入到数组中

array_pad(array,size,value)

<?php
$a=array("red","green");
print_r(array_pad($a,5,"blue"));
?>
//Array ( [0] => red [1] => green [2] => blue [3] => blue [4] => blue )

删除数组中的最后一个元素(出栈)

array_pop() 函数删除数组中的最后一个元素。

<?php
$a=array("red","green","blue");
array_pop($a);
print_r($a);
?>
//Array ( [0] => red [1] => green )

将一个或多个元素插入数组的末尾(入栈)

array_push() 函数向数组尾部插入一个或多个元素

<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>
//Array ( [0] => red [1] => green [2] => blue [3] => yellow )

从数组中随机选出一个或多个元素,返回键名

array_rand()函数返回数组中的一个随机键名,或者如果指定函数返回键名不只一个,则返回一个包含随机键名的数组。

<?php
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo $a[$random_keys[0]]."<br>";//red
echo $a[$random_keys[1]]."<br>";//blue
echo $a[$random_keys[2]];//brown
?>

通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。

<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction"));
//-Dog-Cat-Horse
?>

使用后面数组的值替换第一个数组的值。

array_replace() 函数使用后面数组的值替换第一个数组的值

<?php
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_replace($a1,$a2));
//Array ( [0] => blue [1] => yellow )
?>
<?php
$a1=array("red","green","blue","yellow");
$a2=array(0=>"orange",3=>"burgundy");
print_r(array_replace($a1,$a2));
//Array ( [0] => orange [1] => green [2] => blue [3] => burgundy )
?>

将原数组中的元素顺序翻转,创建新的数组并返回

array_reverse()函数返回翻转顺序的数组。

<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
//Array ( [c] => Toyota [b] => BMW [a] => Volvo )
?>

在数组中搜索给定的值,如果成功则返回相应的键名。

array_search() 函数在数组中搜索某个键值,并返回对应的键名。

<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
//a
?>

删除数组中的第一个元素,并返回被删除元素的值。

array_shift() 函数用于删除数组中的第一个元素,并返回被删除的元素。

<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_shift($a);//red
print_r ($a); //Array ( [b] => green [c] => blue )
?>

返回数组中的选定部分

array_slice()

<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2));//Array ( [0] => blue [1] => yellow [2] => brown )
?>

把数组中的指定元素去掉并用其它值取代

array_splice()函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
array_splice($a1,0,2,$a2);
print_r($a1);//Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
?>

数组中所有值的和

array_sum()

<?php
$a=array(5,15,25);
echo array_sum($a);//45
?>

对关联数组按照键值进行降序排序

arsort() 函数对关联数组按照键值进行降序排序

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
 }
//Key=Joe, Value=43
//Key=Ben, Value=37
//Key=Peter, Value=35
?>

关联数组按照键值进升序排序。

asort()

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
//Key=Peter, Value=35
//Key=Ben, Value=37
//Key=Joe, Value=43
?>

检查数组中是否存在指定的值。

in_array()

<?php
$sites = array("Google", "Runoob", "Taobao", "Facebook");
 
if (in_array("Runoob", $sites))
{
    echo "找到匹配项!";
}
else
{
    echo "没有找到匹配项!";
}
//找到匹配项!
?>

创建一个包含指定范围的元素的数组。

range()

<?php
$number = range(0,5);
print_r ($number);//Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
?>

返回数组中元素的数目。

count(array,mode)
array:数组,
mode:0 - 默认。不计算多维数组中的所有元素。
1 - 递归地计算数组中元素的数目(计算多维数组中的所有元素)

<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);//3
?>

sizeof() 函数返回数组中元素的数目,是 count() 函数的别名

<?php
$cars=array("Volvo","BMW","Toyota");
echo sizeof($cars);//3
?>

相关文章

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • php哈希冲突攻击解析

    一段攻击代码 插入结果 php5(5.2) php7 php 数组的实现 php 中的数组是 php 中非常好用的...

  • php入门--数组

    在 PHP 中,array() 函数用于创建数组: 数值数组 在 PHP 中,有三种类型的数组:数值数组 - 带有...

  • PHP之each()函数输出空白问题

    each()函数 (PHP 4, PHP 5, PHP 7) each — 返回数组中当前的键/值对并将数组指针向...

  • php多维混合数组转一维数组的函数

    php多维混合数组转一维数组的函数 php语言本身没有将多维数组转为一维数组的函数,但是我们可以自己写一个php函...

  • 1.2 PHP数组

    PHP手册:Array 数组 简介在PHP手册中对Array数组的描述是这样的:PHP 中的数组实际上是一个有序映...

  • PHP常用数组排序算法

    title: PHP常用数组排序算法tags: [PHP,数组,排序,算法] 这几天写到的代码中,用到了许多对数组...

  • 浅析PHP数组的实现

    一. PHP数组特点介绍 php数组可谓是php的核心,其key=>value的存储结构,让我们处理数据可以...

  • php基础__2019-07-03

    php数组原型 php数组其实是一种有序映射(或者说是有序字典)

  • json在js与php解析对应关系

    json在js与php解析后有所不同,php的索引数组对应js的数组,php的关联数组对应js的对象。你要是想让j...

网友评论

      本文标题:PHP数组

      本文链接:https://www.haomeiwen.com/subject/wbspedtx.html