PHP数组
一、数组的定义
数组array定义为一组具有相同特性的元素,每个元素都有一个特殊的标识符区分,称为键 (key)
每个实体包含2个项: 键( key) 和 值 (value) , 可以通过键来获取值
键又可以是数值或关联键
注意:
数值键与值没有真正联系,他们只是值在数组中的位置
关联键与值有一定的关系
二、创建数组
1、array() 声明数组 (非正式方法)
<?php //非正式方法创建索引数组 $state[0] = "PHP"; $state[1] = "MySQL"; $state[2] = "JavaScript"; d($state); /* Array ( [0] => PHP [1] => MySQL [2] => JavaScript ) */
注意 如果创建的是数值数组 索引是递增的 索引值可以省略不写
<?php //创建一个数值索引 $states = array( 0 => 'Alabama', 1 => 'Alaska' ); //通过数值索引 可以获取值 echo $states[0]; //Alabama
<?php // 创建一个关联数组 $newarray = array( "first"=>1, "second"=>2, "third"=>3 ); // 访问关联数组 echo $newarray["second"]; // 2
<?php
// 创建一个多维数组
$states3 = array(
'sc' =>array(
'成都'=>'温江',
'绵阳'=>'梓潼',
'广元'=>'苍溪'
),
'sx' =>array('西安')
);
//获取多维数组元素
echo $states3['sc']['广元']; //多维数组:苍溪<?php //非正式方法创建关联数组 $state2['js'] = "JavaScript"; $state2['php'] = "PHP"; $state2['mysql'] ="MYSQL"; d($state2); /* Array ( [js] => JavaScript [php] => PHP [mysql] => MYSQL ) */
2、使用array()创建数组
array() 函数接收0个或多个元素作为输入, 返回一个包含这些输入元素的数组
<?php
// 创建索引数组 :
$language = array("php","mysql","js");
//创建关联数组 :
$language = array("php"=>"90","mysql"=>"100");三、遍历数组
1、foreach 遍历数组
<?php
$url = array(
'编程词典网'=>'www.mrbccd.com',
'编程体验网'=>'www.bcty365.com',
'编程资源网'=>'www.bc110.com'
);
foreach($url as $link){
echo $link ."<br>";
}
/*
www.mrbccd.com
www.bcty365.com
www.bc110.com
*/2、使用list() 提取数组
list() 函数可以从一个数组内取出多个值,同时为多个变量赋值
该函数只用于数字索引的数组,且假定数字索引从 0 开始
<?php
$number = array("Dog","Cat","Blue");
list($a, ,$c) = $number;
echo "$a, ,$c"; //Dog Blue四、字符串与数组转换
explode()函数和implode()函数
1、使用explode()函数将字符串转换成数组
array explode(string separator,string string,[int limit])
<?php
$str = "时装,休闲,职业装";
$strs = explode(",",$str);
//Array ( [0] => 时装 [1] => 休闲 [2] => 职业装 )
print_r($strs);
//时装
echo $strs[0];
// 如果设置了limit,那么最后那个元素将包含string的剩余部分
$strss = explode(",",$str,2);
//Array ( [0] => 时装 [1] => 休闲,职业装 )
print_r($strss);
// 如果separator为空字符串 explode返回false
$strsss = explode(" ",$str);
//Array ( [0] => 时装,休闲,职业装 )
print_r($strsss);
// 如果separator找不到返回包含string单个元素的数组
$strssss = explode("、",$str);
//Array ( [0] => 时装,休闲,职业装 )
print_r($strssss);
// 如果separator 为负数 返回除了最后的limit个元素外的所有元素
$strsssss = explode(",",$str,-1);
// Array ( [0] => 时装 [1] => 休闲 )
print_r($strsssss);字符串与数组之间的转换
// 定义一个数组
$array = array("bike","car","plane","train");
//Array ( [0] => bike [1] => car [2] => plane [3] => train )
print_r($array);
echo "<br/>";
echo "经过implode处理后的$array";
$array = implode('---',$array);
//bike---car---plane---train
print_r($array);
echo "<br/>";
echo "经过explode处理后 的$array";
$array = explode('---',$array);
//Array ( [0] => bike [1] => car [2] => plane [3] => train )
print_r($array);2、使用implode() 函数将数组转换成一个新字符串
implode()函数用于将数组的内容组合成一个字符串
string implode(string glue,array pieces)
glue 字符串乐西 传入的分隔符
pieces数组类型 要合并元素数组变量名称
<?php
$mystr = array("hello","world","php","javascript");
// 组合成一个新的字符串
// hello,world,php,javascript
echo implode(",",$mystr);五、统计数组元素个数
count()函数对数组中的元素个数进行统计
int count(mixed array [,int mode])
array 必填参数 数组
mode 可选 COUNT_RECURSIVE 或 1
如选中此参数,本函数将递归对数组计数,对计数多维数组的所有单元有用,默认值为0
<?php
$arr2 = array("php函数大全","php编程宝典","js入门到精通");
// 3
echo count($arr2);
$arr3 = array(
"php"=>array("php函数大全","php编程宝典"),
"js"=>array("js入门到精通")
);
// 5
echo count($arr3,COUNT_RECURSIVE);六、查询数组中指定的元素
array_search() 在数组中搜索给定的值,找到返回键名 否则返回false
array_search(mixed needle,array haystack [, bool strict])
needle指定在数组中搜索的值
haystack指定被搜索的数组
strict为可选参数,如果值为true,还将在数组中检查给定值的类型
$arr4 = array("a"=>"red","b"=>"green","c"=>"blue");
//array_search() 函数在数组中搜索某个键值,并返回对应的键名
// 返回键名 a
echo array_search("red",$arr4);七、获取数组中最后一个元素
array_pop()函数获取并返回数组的最后一个元素,并将数组的长度减1
如果数组为空(或者不是数组)将返回null
array_pop(array array)
$arr5 = array("hello","world","php","javascript");
$array1 = array_pop($arr5);
//javascript
echo $array1;八、向数组中添加元素
array_push()函数将数组当成一个栈,将传入的变量压入该数组的末尾,
该数组的长度将增加入栈变量的数目,返回数组新的元素总数。
array_push(array array,mixed var [,mixed ...])
array为指定的数组,var是压入数组中的值
$arr6 = array("hello","world","php","javascript");
array_push($arr6,"css3","mysql");
//Array ( [0] => hello [1] => world [2] => php [3] => javascript [4] => css3 [5] => mysql )
print_r($arr6);九、删除数组中重复元素
array_unique()函数用于将值作为字符串排序,然后对每个值只保留第一个键名,
忽略所有后面的键名,即删除数组中重复的元素。
array array_unique(array array)
array为输入的数组
$arr7 = array("hello","world","php","javascript","php");
$arr7_1 = array_unique($arr7);
//Array ( [0] => hello [1] => world [2] => php [3] => javascript )
print_r($arr7_1);十、数组排序
sort()
rsort()
asort()
arsort()
ksort()
krsort()
shuffle() 随机排序函数
十一、多维数组排序
十二、数组判断函数
in_array()
array_key_exists()
十三、数组合并拆分
array_merge()数组合并
array_combine() 数组合并
array_chunk() 数组拆分
十四、返回数组交集函数 array_intersect()
十五、快速初始化数组
range()
array_fill()
十六、在数组中查找值
array_search()
十七、定位数组元素
in_array()
十八、获取数组键
array_keys()
十九、获取数组值
array_values() 所有的值并为其建立数字索引,不保留键名
$a=array("Name"=>"Bill","Age"=>"60","Country"=>"USA");
//Array ( [0] => Bill [1] => 60 [2] => USA )
print_r(array_values($a));多文件上传综合实例:
<form action="arr1.php" method="post" enctype="multipart/form-data" name="form1"> <tr> <td width="88" height="30" align="right" class="STYLE1">内容1:</td> <td width="369"><input name="picture[]" type="file" id="picture[]" size="30"></td> </tr> <br> <tr> <td width="88" height="30" align="right" class="STYLE1">内容2:</td> <td width="369"><input name="picture[]" type="file" id="picture[]" size="30"></td> </tr> <tr> <br> <td height="30" align="right" class="STYLE1">内容3:</td> <td><input name="picture[]" type="file" id="picture[]" size="30"></td> </tr> <br> <tr> <td><input type="submit" name="imageField" value="提交"></td> </tr> </form>
<?php
//判断服务器中是否存在指定文件夹
if(!is_dir("./upfile")){
//如果不存在,则创建文件夹
mkdir("./upfile");
}
//删除数组中重复的值
$array=array_unique($_FILES["picture"]["name"]);
//根据元素个数执行foreach循环
foreach($array as $k=>$v){
//定义上传文件存储位置
$path="upfile/".$v;
//判断上传文件是否为空
if($v){
//执行文件上传操作
if(move_uploaded_file($_FILES["picture"]["tmp_name"][$k],$path)){
$result=true;
}else{
$result=false;
}
}
}
if($result==true){
echo "文件上传成功,请稍等...";
echo "<meta http-equiv=\"refresh\" content=\"3; url=arr1.php\">";
}else{
echo "文件上传失败,请稍等...";
echo "<meta http-equiv=\"refresh\" content=\"3; url=arr1.php\">";
}
?>array_unshift和array_shift数组头添加/删除数组元素
https://www.gyzth.top/article/15.html
array_push和array_pop数组尾添加/删除数组元素
https://www.gyzth.top/article/16.html