标签:
一.数组的概念:
数组可以理解为有序的(键-值)对组成的数据值的集合; 如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值的容器; 根据索引值的不同数组分为:索引数组和关联数组; $week = array("a"=> "星期一", "b"=>"星期二", "c"=> "星期三"); //a:键 星期一:值 二.创建数组 1.使用array()函数 array array ( [mixed ...] ) $arr = array(); $fruits = array("orange", "apple", "banana"); $languages = array("en"=> "english", "cn"=> "china"); 与其它语言的数组实现方式不同,php不需要在创建数组时指定其大小; 因为php是一种松散类型的语言,所以甚至不需要在使用前先声明; 索引可以是整型数字或者是字符串; 索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增; 关联数组:索引为字符串的数组; 2. 直接对数组变量赋值 $arr[key] = value; $fruits[] = "orange"; $fruits[] = "apple"; $languages["en"] = "english"; $languages["cn"] = "china"; 如果方括号中没有指定索引,则取当前最大整数索引值,新的键名将是该值 + 1。 如果当前还没有整数索引,则键名将为0。如果指定的键名已经有值了,该值将被覆盖。 3. 使用函数创建数组 range() 建立一个包含指定范围单元的数组 $num = range(1, 100); print_r($num); $letter = range(‘a‘,‘I‘); print_r($letter); 三、删除 数组或数组元素 unset 释放给定的变量 $fruits = array(‘apple‘,‘banana‘, ‘orange‘); print_r($fruits); unset($fruits[1]); print_r($fruits); unset($fruits); 注意:删除数组元素不会重建索引;四、常用的数组函数 1.print_r() 打印数组 $today = getdate(); print_r($today); 2.count() 取得数组大小 count($week); 3.in_array() 检查数组中是否包含某个值 in_array(‘apple‘, $fruits); var_dump(in_array(apple, $fruits));五、遍历数组 for() do{}while() while(){} foreach(){} 使用数组指针遍历数组 key() 返回数组当前指针元素的索引; current() 返回数组当前指针元素的值; next() 将数组指针向前移动一位,并返回当前指针元素的值; 如果超出了数组元素的末尾,则返回FALSE prev() 将数组指针往回移动一位, 并返回当前指针元素的值; 如果指针本来就位于数组的第一个位置则返回FALSE; reset() 将指针指向第一个元素,并返回第一个元素的值 end() 将数组指针指向最后一个元素, 并返回最后一个元素的值; each() 返回数组当前指针元素的键和值,并将指针推进一个位置;如果内部指针越过了数组的末端,则 each() 返回 FALSE。 list() 把数组中的值赋给一些变量; $fruits = array(‘apple‘, ‘banana‘, ‘orange‘); echo current($fruits); each($fruits); //使用each()推进指针向前一步 echo current($fruits); next $fruits); //也可以使用next() 推进指针向前一步 echo current($fruits); end($fruits); //将数组指针指向最后一个元素 print_r(each($fruits)); list($val1, $val2, $val3) = $fruits; echo $val1; echo $val2; echo $val3; 使用循环语句遍历数组 $fruits = array(‘apple‘, ‘banana‘, ‘orange‘); //do{}while() do{ echo key($fruits). ‘=> ‘.current($fruits); }while(next($fruits)); //while(){} while($arr = each($fruits)){ echo $ arr[‘key‘].‘‘.$arr[‘value‘]; } while(list($key, $value) = each($fruits)){ echo $key.‘‘.$value; } //for(){} for($i = 0;$i < count($fruits);$i++){ echo "key:".$i."|value:".$fruits[$i]; } //foreach(){} $product = array( ‘pname‘=> ‘nokia n73‘, ‘price‘=> ‘1500‘, ‘pubtime‘=> ‘2008‘, ); if(is_array($product) && !empty($product)){ foreach($product as $key=>$value){ echo $key.‘:‘.$value.‘<br>‘; } } 六、数组排序 1.sort() 、 rsort() 对数组进行升序和降序 $fruits = array("lemon", "orange", "banana", "apple"); sort($fruits); print_r($fruits); 2.ksort()、krsort() 对数组按索引进行升序或降序, 并保持索引关系 $fruits = array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple"); ksort($fruits); print_r($fruits); 七、二维数组 数组元素的值也可以是数组; $result = array( array( ‘pname‘=> ‘nokia n73‘, ‘price‘=> 1500, ), array( ‘pname‘=> ‘nokia 5800‘, ‘price‘=> 2000, ), ); 遍历二维数组: foreach($products as $product_k=>$product_v){ foreach($product_v as $key=>$val){ echo $key.‘=>‘.$val; } } 八、字符串与数组转换 1.explode() 返回由字符串组成的数组 $str = "1,2,3,4,5,6"; $arr = explode(‘,‘, $str); print_r($arr); 2.implode() 将数组元素连接成字符串 $arr = array(‘a‘,‘b‘, ‘c‘, ‘d‘); $str = implode(‘|‘, $arr ); echo $str; 练习: 1.新建一个数组的函数为? A. array B. next C. count D. reset 2.下列说法正确的是? A. 数组的下标必须为数字,且从"0"开始 B. 数组中的元素类型必须一致; C. 数组的下标可以是字符串; D. 数组的下标必须是连续的; 3. 以下代码运行的结果? $week = array(‘Monday‘, ‘Tuesday‘, 3=>‘Wednesday‘); echo $week[2]; 4.以下代码运行的结果为? $arr = array("a"=> 123, "b"=> 456 ; "c"=> 789); for($i = 0; $i < count($arr), $i++){ echo $arr[$i]. " "; } A. 打印3个空格; B. 123 456 789 C. 提示错误 D. (打印6个 )标签:
原文地址:http://www.cnblogs.com/jacko/p/4882056.html