PHP学习2数组

定义一维数组

用array()函数定义一维数组,基本语法结构如下:
array([key=>] value,…)

  • 例如:$arr=array(“first_element”=>“CPU”,2=>"内存“);List item

数组$arr中包含了两个元素,分别使用字符串first_element和整数2作为键来标识。第1个数组元素的值为”CPU",第2个数组元素的值为“内存”。
在定义数组时,也可以不指定键。此时,程序会自动使用从0开始的整数作为关键字。

  • 例如:$arr=array(“CPU”,"内存”,“硬盘”);
  • 等同于 $arr=array(0=>“CPU”,2=>“内存”,3=>“硬盘”);
  • 可以通过向数组赋值的方式来添加数组元素,例如,执行下面的语句可以在数组$arr中添加一个键为4的元素,它的值为“声卡”
    $arr[4]=“声卡”;
  • 也可以不指定键,只在数组变量后面加一对空的方括号来添加数组元素,代码如下:
    $arr[]=“显卡”;

print_r($arr)输出数组

在这里插入图片描述

定义多维数组

语法结构:
array([key=>] array([key=>] value),…)
其中value还可以嵌套array()函数来定义数组。
例如:

$arr=array(array("CPU","内存"),array("硬盘","声卡"));

$arr2[0][0]="CPU";
$arr2[0][1]="内存";
$arr2[1][0]="硬盘";
$arr2[1][1]="声卡";

$arr3[0][]="CPU";
$arr3[0][]="内存";
$arr3[1][]="硬盘";
$arr3[1][]="声卡";

//$arr   $arr2  $arr3都是一样的

数组元素

  • 访问数组元素 通过下标访问
    -echo($arr[1][1]) =声卡

添加数组元素,两个函数

  • array_unshift($数组名,添加的数组值1,…添加的数组值n)
    通过array_unshift添加是值出现在数字的开头。
<?php
$arr=array("CPU","内存","显卡");
print_r($arr);
print("<br/>");
array_unshift($arr,"apple");
print_r($arr);

在这里插入图片描述

  • array_push()函数,在数组末尾插入一个或多个元素
    array_push($数组名,添加的值1,…添加的值n)
<?php
$arr=array("CPU","内存","显卡");
print_r($arr);
print("<br/>");
array_unshift($arr,"apple","OK");
print_r($arr);

array_push($arr,"hello","hay");
print("<br/>");
print_r($arr);

在这里插入图片描述

删除数组中的元素两个函数

  • 删除数组的第一个元素,array_shift(),语法:array_shift($数组名)
  • 删除数组的最后一个元素,array_pop(),语法:array_pop($数组名)
<?php

$arr=array("orange","apple","banana","pear");
$fruit=array_shift($arr);
print_r($arr);
echo("<br/>");
echo("删除了头部:");
echo($fruit);
echo("<br/>");
print_r($arr);
echo("<br/>");
$fruit2=array_pop($arr);
echo("删除了尾部:");
echo($fruit2);
echo("<br/>");
print_r($arr);

在这里插入图片描述

定位数组元素

  • 搜索数组中是否存在指定值 in_array()函数
    bool in_array(mixed $needle,array $haystack,[,bool $strict])
    功能是在haystack中搜索是否存在needle,如果找到就返回true,找不到就返回false,如果第3个参数strict的值为true,还会检查needle和haystack的数据类型是否相同。
  • 搜索数组中指定值对应的键 array_search()函数
    mixed array_search(mixed $needle,array $haystack,[,bool $strict])
    功能是在haystack中搜索是否存在needle,如果找到就返回相应的键名,否则返回false,如果第3个参数strict的值为true,还会检查needle和haystack的数据类型是否相同。
    提示:如果needle在haystack中出现不止一次,则返回第一个匹配的键,如果needle是字符串,则比较是区分大小写的。
<?php
$language=array("PHP","JAVA","ASP","ASP.NET");
if(in_array("ASP",$language)){
    echo "找到了ASP";
}
if(in_array("php",$language)){
    echo "找到了php";
}

$array1=array('bule','red','green','red');
$key=array_search('green',$array1);
echo($key);
echo("<br/>");
$key=array_search('red',$array1);
echo($key);

在这里插入图片描述

  • 检查数组中是否存在指定键
    array_key_exists()函数检查
    bool array_key_exists(mixed $key,array $search)
    函数的功能是在数组search中搜索键key,如果找到则返回TRUE,否则返回FALSE,
    字符串要区分大小写。

关于换行

目前我知道的要使浏览器换行就只有"< br/ >"

其他数组函数

  • array array_keys(array $input [,mixed $search_value [, bool $strict ] ] )
    返回数组input中的数字或字符串的全部键名,如果指定可选参数为search_value则只返回该值对应的键名。这些键名组成一个新的数组的值。
  • array array_values(array $input)返回数组中的所有值。

遍历数组元素

  • int count(array $arr)获取数组的元素量函数同sizeof()函数

数组指针

  • current()函数可以获取当前指针下的数组元素的值,并不移动指针,如果内部指针指向超出了单元列表的末端,则函数返回FALSE
    语法: mixed current(array $array)
  • next()函数可以将数组指针移动到下一个位置
    语法:mixed next(array &$array)
  • end()函数可以将数组指针移动到最后一个单元,并返回该单元。
    语法:mixed end(array &$array)
  • prev()函数可以将数组指针倒回一位,并返回值
    语法:mixed prev(array &$array)
  • reset()函数可以将数组指针指向第一个元素,并返回第一个元素的值。
    语法:mixed reset(array &$array)
  • **foreach()**语句遍历数组元素
<?php
$arr=array('blue','black','purple','green');
foreach ($arr as $val){
    echo("$val ");
}

感觉与c++里面基于范围的for循环有点像。

  • 确定唯一的数组元素 array_unique()
    array array_unique(array $arr)过滤掉数组中重复的元素,返回没有重复值的新数组。

常用数组操作

  • 数组排序,升序排列数组 asort()函数 语法:bool asort(array &$array)排序成功,则返回TRUE,否则返回FALSE
  • 降序排列数组 arsort()
  • 反序排列数组 array_reverse() 语法:array array_reverse(array $array)函数接受数组array作为输入并返回一个单元为相反顺序的新数组。
  • 填充数组,array_fill()函数可以指定的值填充所有的数组元素,
    语法:array array_fill(int $start_index,int $num,mixed $value)
    start_index:指定数组键的起始序号。
    num:指定填充数组的元素的数量。
    value:指定填充数组元素的值。

合并数组

  • array_merge()函数,如果输入的数组中有相同的字符串键名,则该键名后面的值将会覆盖前一个值,然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
    语法:array array_merge($arr1, $arr2)
<?php
$arr1=array("color"=>'blue','black','purple','green');
$arr2=array('a','b',"color"=>'hello','oj'=>'purple',4,5);
$re=array_merge($arr1,$arr2);
print_r($re);
echo("<br/>");
$re2=array_merge($arr2,$arr1);
print_r($re2);
echo("<br/>");
$arr3=array('blue','black','purple','green');
$arr4=array('a','b','blue',4,5);
$re3=array_merge($arr3,$arr4);
print_r($re3);
echo("<br/>");
$re4=array_merge($arr4,$arr3);
print_r($re4);
echo("<br/>");

在这里插入图片描述

拆分数组

  • array_chunk() 语法:array_chunk($input,int $size [,bool $preserve_keys])
    $input被拆分数组, $size指定拆分后数组的大小。将可选参数preserve_keys设为TRUE可使PHP保留输入数组中 $input原来的键名。如果将其指定为FALSE,则每个结果数组将用从0开始的新数字索引。默认值是FALSE
<?php
$input_array=array('a','b','c','d','e');
print_r(array_chunk($input_array,2));
echo "<br/>";
print_r(array_chunk($input_array,2,true));

在这里插入图片描述

数组统计

  • array_count_values()函数用于统计数组中所有值的次数,结果返回到另一个数组中。可以用此函数对数组中的数据进行统计。
    语法:array array_count_values(array $input) 函数返回一个数组,该数组用input数组中的值作为键名,该值在input数组中出现的次数作为值。

  • array_sum()函数可以对数组中元素的值进行求和操作

<?php
$input_array=array(1,2,3,4,5,3,2,1,2,3,4,5);
$a=array_sum($input_array);
echo ($a);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值