PHP数组学习
可以用来存放多个数据的数据类型,我们成为数组。
在php中,数组就是关键字和值的集合,我们可以这样创建
①创建数组
第一种方式:
$arr[0]=123;
[0]称为下标,或者称为关键字
$arr[0]称为数组的一个元素
$arr[0]=123中123表示$arr[0]元素对应的值
$arr是这个数组的名称
在php中,元素存放的值可以使任意的数据类型数据
第二种方式:
基本语法
直接赋值
$数组名=array(值,......);
举例说明:
$arr=array(1,90,"hello",89.5);
第三种方式:在默认情况下,我们的下标是从0开始编号的,但是实际上,也可以自己指定。
基本语法
$arr["logo"]="北京";
$arr["hsp"]=123;
... ...
或者
$arr=array("logo"=>"北京","hsp"=>123,4=>678);
*********************************
$arr=array(1,90,"hello",89.5);
①如果我们创建一个数组的时候,如果没有给某个元素指定下标,php就会自动的用目前最大的那个下标值(整数),加上一作为该元素的下标(关键字)
②如果我们给某个元素的下标一样,则会覆盖原来的值(替换)
使用TRUE作为键名将使integer1成为键名。使用FALSE作为键名将使integer0成为键名。
使用NULL作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样。
使用小数作为key将自动截断小数部分:
$a=arr("abc"=>123,"hhh"=>456,12.6=>"hello");
print_r($a);//显示信息为:
Array([abc]=>123[hhh]=>456[12]=>hell3o)不能用数组和对象作为键(key)。这样会导致一个警告:Illegal offset type.
③如果我们使用true,false,null作为key,访问方式:
$arr[true]="hello";
$arr[false]="world";
$arr[null]="北京";
echo $arr[0];
echo "
".$arr[1];
echo "
".$arr[null];
echo "
".$arr[""];
?>
④方法数组的时候,不要越界。比如:
$arr=array(56,100,101);
echo $arr[3];
************************
$a=arr(2,3);
$a[2]=56;
echo $a[2];//打印的结果是56
?>
说明:PHP数组是可以动态增长的。
$数组名[键值]
如果你写的键值不存在,则会报告:Notice:Undefined offset
************************
一维数组引用陷阱
$arr[bar]="hello,world";//PHP会认为bar是一个常量
echo $arr[bar];
会报出一个警告,需要这样解决const bar="yy";这样使用很危险。
☆★PHP的数组相关的系统函数
count()函数
①count($数组名);统计数组条目
②is_array()函数判断数组
$arr=array("12","345");
//$arr=1;
echo is_array($arr);
③print_r()和var_dump[同时显示数据类型]可以显示数组信息
④拆分字符串explode explode(“按照什么拆分”)
$str="北京 天津 松江";
//在实际的开发中,涉及到字符串的拆分,可以考虑用此方法
$arr=explode("",$str);
print_r($arr);
⑤sort函数用于排序
$a[0]=1l
$a[1]=3;
$a[2]=5;
$result=count($a);
//result=3
$b[0]=7;
$b[5]=9;
$b[10]=11;
//$result=3
$arr=array();
echo count($arr);
//result=0
?>
遍历一维数组
遍历数组有很多方法,可以使用for循环,while循环,最巧妙的一种遍历数组的方法foreach()给我们带来了方便
foreach($arr as $key=>$value)
{
... ...
}