PHP基础知识总结--第二弹

1、什么是数组?
PHP中的数组更负责和灵活;数组中每个元素由一个特殊的标识符区分,这个标识符为键,键又称下标,数组中每一个实体都有键和值


2、如何声明数组?
(相比JS,求数组长度的函数不再是用length而是用count($数组变量名))
a、直接为数组元素赋值
$arr[0]=0;
$arr[1]=1;
$arr[2]=2;
b、利用array()函数声明数组
$数组名=array(key1=>value1,key2=>value2...keyN=>valueN);

//第一种
/*$arr=array(3);
$arr[0]=1;//此时,若定义索引数组
$arr[1]=2;//且定义的元素个数与函数括号内的数字不一致则array函数括号的值默认为索引为0 的值
$arr[2]=3; *///若一致则array函数括号内的值表示数组的长度

/* $arr["first"]=1;//若定义关联数组,则array函数括号的值默认为索引为0 的值,即$arr[0]=3
$arr["second"]=2;
$arr["third"]=3; */
//第二种
$arr=array(23,34,5);
$arr1=array("id"=>1,"name"=>2);
echo "<pre>";
print_r($arr);
print_r($arr1);
echo "</pre>";
3、哪两种数组类型?
索引数组和关联数组


4、多维数组的声明
利用array函数声明
例如:
//二维数组
/* $arr=array(
array("1000","Jane","20"),
array("1001","Dan","20"),
array("1002","Bob","20")
); */
//三维数组
$arr=array(
"一班"=>array(array("1-1000","Jane","20"),
array("1-1001","Dan","20"),
array("1-1002","Bob","20")),
"二班"=>array(array("2-1000","Jane","20"),
array("2-1001","Dan","20"),
array("2-1002","Bob","20"))
);



5、遍历数组
(1)、for循环遍历数组,局限在于只能遍历索引数组

eg:

echo "<table border='1px' width='300px' >";

for($i=0;$i<count($arr0);$i++)//$arr0在此处是二维数组
{
echo "<tr>";
for($j=0;$j<count($arr0[$i]);$j++)
{
echo "<td>{$arr0[$i][$j]}</td>";
}
echo "</tr>";
}
echo "</table>";
(2)、利用foreach遍历数组

foreach遍历数组有两种语法格式
第一种:foreach( $要遍历数组 as $自定义局部变量名)
{循环体}
第二种:foreach($要遍历数组 as $自定义局部变量名=>$自定义局部变量名)
{循环体}
例如:

//foreach遍历第一种格式
echo "<table border='1px' width='300px'>";
foreach ($arr0 as $a)
{echo "<tr>";
foreach ($a as $b)
{echo "<td>{$b}</td>";}
echo "</tr>";}
echo "</table><br/>";
//foreach遍历第二种格式
echo "<table border='1px' width='300px'>";
foreach($arr0 as $a)
{echo "<tr>";
foreach ($a as $b=>$c)
{echo "<td>$b=>$c</td>";}
echo "</tr>";
}


6、each() list() while()三个函数遍历数组的区别
each() 需要传递一个数组作为参数,并且一次返回一个键/值对,
并向后移动数组元素指针指向下一个元素,返回的是关联和索引的混合数组,
键名分别为0,key,1,value(其中0,key对应键,1,value对应值)
当each指针移到了末端就返回false
list($a1,$a2)=$arr; 取出索引数组arr的值,赋值给$a1,$a2,其赋值规律是按数组索引0 1 ……分别 对应 给a1 a2 ……赋值,其中0代表键名,1代表值

while((list($a1,$a2)=each($arr))!=false))

{循环体}//取出数组arr的每一个元素,并将其键和值分别赋给a1 a2知道each返回false退出循环


举例:
$arr2=each($arr);
echo "<pre>";
print_r($arr2);
echo "<hr/>";
$arr3=array('id'=>1000,'name'=>'Jane');
/* list($a1,$a2)=each($arr3);//list()函数
echo "\$a1为{$a1}  \$a2为{$a2}<hr/>"; */
while (list($a1,$a2)=each($arr3))//利用while遍历数组
{echo "\$a1为{$a1}  \$a2为{$a2}<br/>";}


7、注意
关联数组的索引,如果是字符串作为下标,则第一个没有指明索引的值的下标为“0”,如果前面是数字索引下标,则第一个没有指明索引的值的下标为前一个索引的值加1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值