技术专区 \ PHP

【PHP 零基础入门教程】第一章 PHP基础知识 (1-12数组)

数组 ⋅ 2017-05-15 10:52:35

数组
  数组可以存入多个不同类型的数据,是一个复合数据类型。
  我们可以使用array()来初始化数组,每个数组元素之间使用逗号分隔。 
  在PHP5.4版本之后,数组的初始化更为简洁,用中括号[]来初始化。
现在创建一个简单的数组:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $array=array(100,1.34,true,"PHP中文网",);
 echo '<pre>';
 var_dump($array);
 echo '<pre/>';
 ?>

在上例中,我们发现存入了:
1.  字符串
2.  浮点
3.  整型
4.  布尔
  注:上例中echo pre这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。
我们对着程序运行的结果看一下:
1.  0=>int 100我们知道int是整型的意思,100是一个整型的数值。那前面的0,1,2,3和=>代表什么意思呢?
2.  array(size=4)说明里面有4个元素。 
3.  最先前的0,1,2,3代表的是值的读取标识号,我们称之为下标或者键(英文:key)。
4.  我们还称数组里面的键值对为元素,元素就是键值对的组合。
5.  =>是一个符号标准叫法叫作:键值对应符。因此,以后再看到0=>int 1可以这样来说,下标访问符0对应整型的1。

  通过上例,我们就完成了数组其中的一种声明方式,索引数组的声明。所谓索引数组就是下标全为整型的数组。

用for循环遍历索引数组:
  就是一个接一个全读访问一次,显示出来。
  因为for循环是一个单纯的计数型循环,而索引数组的下标为整型的数值,因此我们可以通过for循环来遍历索引数组。
实例:

<?php
 $arr=Array('tom','andy','jack');
 $arrlength=count($arr);
 for($x=0;$x<$arrlength;$x++){
     echo $arr[$x];
     echo  "<br/>";
 }
 
 ?>

  通过上面的例子,我们就把数组进行了循环。因为下标是从0开始的,定义$i=0 。每次循环的时候让$i加1 ,但是必须要小于3,因为数组下标的最大值为2。

关联数组:
  索引数组适当的变一下形就出现了关联数组。只要数组里面有一个为字符串的数组,就为关联数组。
  那我们来声明一下关联数组。跟索引数组的声明方式一样,不过不同的是,必须要指定字符串的下标和必须要使用键值对应符。
实例:

<?php
 $arr=[            //用[]创建数组
     'name'=>'Tom',
     'age'=>'18',
     'gender'=>'male'
 ];
 echo "<pre>";
 var_dump($arr) ;
 echo"</pre>"
 ?>

我们通过实验得知:
1.  在关联数组可以有索引数组的元素。
2.  声明关联数组是 键名 => 值。
  数组是我们最常用到的类型,那如何计算某个一维数组的个数呢?其实我们可以用到之前学过的数学函数里面的一个count()。count($变量)函数用于返回数组的长度(元素数)。
实例:

<?php
$name=Array('tom','andy','jack');
echo count($name);
?>

  这是一个固定用法,将要循环的数组放进去。
  as 是一个固定的关键字。
  后面的键变量是可选的,随意定义一个变量,每次循环的时候,foreach这个语法会把键取出来赋值到键变量里面。
  后面的值变量是必填的。每次循环的时候,会把值放到值变量里面。
实例:

?php
 $arr=[
     'name'=>'Tom',
     'age'=>'18',
     'gender'=>'male'
 ];
 foreach($arr as $key=>$value){
     echo $key.": ".$value."<br />";
 
 };
 ?>

通过上面的运行结果我们得出下面的结果:
1.  循环一次读一次键和值。读到最后,发现没有可以读取的数组元素后,停止循环遍历数据。
2.  每次循环的时候,把下标赋值给了变量$key,把值的变量赋值给了变量$value。
  注意:$key 和$value并不是变量名必须得为这两个名字。你命名为其他的也可以,如 $kai=>$wen是一样的。你要清楚键赋值给了哪个变量,值赋值给了另外的哪个变量。
通过foreach遍历连续的索引数组,如下例:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $data = array(
     0 => '中国',
     100 => '美国',
     20 => '韩国',
     300 => '德国',
 );
  
 foreach($data as $k => $v){
 
     echo $k . '------' . $v .'<br />';
 
 }
 ?>

  按照foreach的结果推理与刚刚做的关联数组的结果是一样的。
  不同的是不连续的索引数组,每读一次数组的元素,将当次循环的下标赋值给了变量$k,值赋值给了变量$v。每读将键和值输出,然后显示出来。循环一次向后移动一次下标。读取至最后,退出执行。