LINUX入门:PHP数组函数知识汇总
|
《LINUX入门:PHP数组函数知识汇总》要点: 本文为大家分享了PHP数组函数基础知识,供大家参考,具体内容如下 数组array是非常重要的数据类型.相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值.数组能够在单一变量名中存储许多值,并且能够通过引用下标号来拜访某个值. 一、创建数组 array(key => value) 1、创建索引数组 使用array()函数声明数组.PHP属于弱类型语言相对较灵活和方便,也可以直接是数组的元素值value,不需要键值key,索引是自动分配的(索引从 0 开始).
array("1" => "百度","2" => "阿里","3" => "腾讯");
或者是不使用键值:
array("百度","阿里","腾讯");
当然也可以写成:
$arr[0] = "百度";
$arr[1] = "阿里";
$arr[2] = "腾讯";
2、创建关联数组 关联数组和索引数组类似,只是关联数组不能够像索引数组的键名那样只能够为数字,它可以是数值和字符串以及混合形式,判断一个数组是否为关联数组的依据是:数组中的键名是否存在一个不是数字的.不是就是关联. array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯"); 3、多维数组 array(array(),array()) 二维数组 获得数组的长度 - count() 函数
<?php
$arr = array("百度","腾讯");
echo count($arr);
?> //结果返回3(说明数组中有三个元素)
二、遍历数组 输出数组中元素的值.对于索引数组常用for、foreach;对于关联数组常用foreach.使用print_r()函数打印循环后的结果,也可以用var_dump(). 1、遍历索引数组 遍历并输出索引数组的所有值,可以使用for、 foreach(array_expression as value)、foreach(arrayexpressionaskey => $value) 循环,如下: 使用for循环
<?php
$arr = array("百度","腾讯");
$arrlen = count($arr);//获取数组的长度
for ($i=0; $i <$arrlen ; $i++) {
$data[] = $arr[$i];
}
echo "<pre>"; //换行显示
print_r($data);
打印结果显示如下:
<?php
$arr = array("百度","腾讯");
foreach ($arr as $value) {
$data[] = $value;
}
echo "<pre>"; //换行显示
print_r($data);//打印结果和上面一样
注意:data后面有一个数组符号[],为什么呢? 2、遍历关联数组 遍历并输出关联数组的所有值,可以使用 foreach (array_expression as key=>value) 循环,如下:
<?php
$arr = array("李彦宏" => "百度","马化腾" => "腾讯");
foreach ($arr as $key => $value) {
$data[$key] = $value;
}
echo "<pre>"; //换行显示
print_r($data);
打印结果显示: Array ( [李彦宏] => 百度 [马云] => 阿里 [马化腾] => 腾讯 ) 注意到没?此时的data后是[$key]?而不是[] 三、增加删除数组的元素 在数组元素的尾部增加
<?php
$arr = array("百度","腾讯");
array_push($arr,"知乎","微博");
echo "<pre>"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
[0] => 百度
[1] => 阿里
[2] => 腾讯
[3] => 知乎
[4] => 微博
)
在数组元素的开始增加
<?php
$arr = array("百度","腾讯");
array_unshift($arr,"微博");
echo "<pre>"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
[0] => 知乎
[1] => 微博
[2] => 百度
[3] => 阿里
[4] => 腾讯
)
在数组元素的尾部删除
<?php
$arr = array("百度","腾讯");
array_pop($arr);
echo "<pre>"; //换行显示
print_r($arr);
打印结果显示:
Array
(
[0] => 百度
[1] => 阿里
)
在数组元素的开始删除
<?php
$arr = array("百度","腾讯");
array_shift($arr);
echo "<pre>"; //换行显示
print_r($arr);
打印结果显示:
Array
(
[0] => 阿里
[1] => 腾讯
)
移除数组中重复的值
<?php
$arr = array("百度","腾讯","百度","微博");
$data = array_unique($arr);
echo "<pre>";
print_r($data);
打印结果显示:
Array
(
[0] => 百度
[1] => 阿里
[2] => 腾讯
[4] => 微博
)
四、定位数组元素 搜索数组中存在的值
<?php
$arr = array("百度","腾讯");
while (in_array("百度",$arr)) {
echo "已经找到";
break;
} //输出已经找到
在数组中根据条件取出一段值: array_slice(array,start,length,preserve) length 可选.数值.规定被返回数组的长度.
<?php
$arr = array("百度","微博");
$data = array_slice($arr,4);
echo "<pre>";
print_r($data);
打印结果显示:
Array
(
[0] => 百度
[1] => 阿里
[2] => 腾讯
[3] => 知乎
)
array_splice(array,array) 函数从数组中移除选定的元素,并用新元素取代它.该函数也将返回包含被移除元素的数组.
<?php
$arr1 = array("百度","腾讯");
$arr2 = array("知乎","微博");
array_splice($arr1,2,$arr2);
echo "<pre>";
print_r($arr1);
打印结果显示:
Array
(
[0] => 知乎
[1] => 微博
[2] => 腾讯
)
五、数组合并、拆分、比较 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加.
<?php
$arr1 = array("百度","微博");
$data = array_merge($arr1,$arr2);
echo "<pre>";
print_r($data);
打印结果显示:
Array
(
[0] => 百度
[1] => 阿里
[2] => 腾讯
[3] => 知乎
[4] => 微博
)
递归追加数组
$arr= array('one'=>'C','one'=>'B');
$arr1= array('three'=>'1','one'=>'2');
$arr2= array_merge_recursive($arr,$arr1);
echo "<pre>";
print_r($arr2);
打印结果显示:
Array
(
[one] => Array
(
[0] => B
[1] => 2
)
[three] => 1
)
合并两个数组
$arr= array('A','B');
$arr1= array('1','2');
$arr2= array_combine($arr,$arr1);
echo "<pre>";
print_r($arr2);
打印结果显示:
Array
(
[A] => 1
[B] => 2
)
求数组的交集
$arr= array('A','B','C','D');
$arr1= array('A','E');
$arr2= array('A','F','D');
$arr3= array_intersect($arr,$arr1,$arr2);
echo "<pre>";
print_r($arr3);
打印结果显示:
Array
(
[0] => A
)
注意:只有在两个元素有相同的数据类型时,array_intersect()才会认为它们相等. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 文件描述符的数量:/ proc / sys / fs / file-nr和
- tmux – 如何绑定一个键以切换到最后一个窗格,或者如果没有
- linux – 什么是NTP色散,我该如何控制它?
- linux – 服务tomcat8无法使用服务tomcat8 start启动
- linux – Unix上有用的命令行命令
- linux – 具有不同大小磁盘的多设备BTRFS文件系统
- linux – wireshark和tcpdump -r:奇怪的tcp窗口大小
- 如何在linux服务器上编辑其他用户的crontab?
- 在同一个Linux目录中有几百个或几千个文件可以(性能方面)吗
- linux – 从ubuntu到windows server 2012的rdesktop
