认识php第三天-数组
在php中可创建一个只有值的数组,也可以创建含有键与值对应关系的数组
php中创建数组无需指定数组的大小,与c#中的Array/ArrayList有点类似,如:
$myArray[0]=’shanghai’;
$myArray[1]=’wuhan’;
…..
如果索引值是数值索引且为递增的话,还可以这样定义:
$myArray[] = ’shanghai’;
$myArray[] = ‘wuhan’;
这段代码同上面的效果是完全一致的。
可以通过索引来访问数组中的元素,如echo $myArray[0];将输出shanghai。
注意:php中的数组索引是从0开始的。
当然,也可以创建一个有键/值关联的数组,即一个dictionary
如:
$myArray['hubei']=’wuhan’;
$myArray['anhui'] = ‘hefei’;
…
这个时候可以通过键来访问值,$myArray['anhui'],将返回hefei。
正式的做法是用array函数来创建数组,如:
$myArray = array(’shanghai’,'wuhan’);
$myArray = array(‘hubei’=>’wuhan’,'anhui’=>’hefei’);
还可以创建这样的多维数组:
$myArray = array(
array(‘hubei’=>’wuhan’),
array(’shanghai’=>’zhangjiang’)
);
echo $myArray[0]['hubei']; //输出wuhan
除用array函数外,还可以使用list函数。该函数在从数据库或语言件中提取信息时非常有用。
比如一个文件中有若干行这样的内容:
yibin,shanghai,201203
jason,wuhan,43000
……..
每行为一个用户的一些信息,用半角的,分隔,这个时候可以用list函数这样处理:
//从文件中读取一行记录
list($name,$addr,$postcode) = explode(‘,’,$line);
此时会生成一个数组,可以用$name访问yibin,用$addr访问shanghai,用$postcode访问201203
最后可以用range()函数
如$myArray = range(1,10);将创建一个长度为10,且值为1-10的一个数组,也可指定一个增长步长,
如:$myArray = range(1,10,2);将创建一个只有奇数的数组;
也可用于字符序列,如$myArray = range(‘a’,'d’);将创建一个值为a/b/c/d的数组。
可以用is_array()函数判断一个变量是否为一个数组,如:is_array($myArray)将返回TRUE,而is_array(’shanghai’)将返回FALSE;
操作数组元素的方法
$arrayname[],只需要通过赋值就能增加数组,如:
$myArray[] = ‘changsha’;就给$myArray数组增加了一个新的元素。
array_push()
array_push($myArray,’aaaaa’,'bbbbb’,'ccccc’);会将’aaaaa’/'bbbbb’/'ccccc’加到数组$myArray的尾部。
array_pop()
array_pop($myArray)将返回位于$myArray数组中的最后一个元素。
array_shift()
array_shift($myArray)将返回$myArray数组中的第一个元素,与array_pop()相反。
array_unshift
array_unshift($myArray,’ddd’)将’ddd’增加到数组$myArray的头部。与array_push()相反。
array_pad(array target,integer length,mixed pad_value)
array_pad会修改指定数组的长度,将其大小增加到指定参数lengh的长度,填充的值由参数pad_value指定,
如果pad_value大于0,则填充右侧,否则填充左侧;如果length小于或等于target的长度,则不做任何操作。
如:
$myArray = range(‘a’,'d’);
array_pad($myArray,8,’e');
则$myArray的值为’a',’b',’c',’d',’e',’e',’e',’e’
关于操作数组的函数太多了,不想在这里列出来,可以查阅php手册。
总之,php函数非常之多,功能也相当强大,能一个一个记下来是非常难的,可以自己写一个简单的工具类来实现一些经常用到的方法。
不是吧,学的这么快,看来想跟上有点不可能了。