定义数组,关联数组,索引数组,二维数组,循环数组,循环二维数组,循环三维数组
实例
<?php // 数组知识 // 定义空数组 // 通过关键字定义 $arr = array(); // 通过中括号定义 $arr = []; // 一维数组,也是索引数组(所有下标都是从0开始的整数) $arr = [1,2.3,4]; echo '<pre>'; var_dump($arr); echo '<hr>'; /* array(3) { [0]=> int(1) [1]=> float(2.3) [2]=> int(4) }*/ // 关联数组 (所有下标都是自定义的 字符串 通过’=>‘箭头符号来指向 值 组成的) $arr = ['a'=>1,'b'=>2,'c'=>'3']; echo '<pre>'; var_dump($arr); echo '<hr>'; /** * array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> string(1) "3" } * */ // 循环遍历一维数组 foreach($arr as $k => $v){ echo($k.'---'.$v.'<br>'); } /** a---1 b---2 c---3 */ echo '<hr>'; // 二维数组--可以是由索引数组和关联数组混合组成的 $arr = [ 'a'=>['aa'=>11,'bb'=>22,'cc'=>33], 'b'=>[111,222,333], [44,55,66,'qq'=>77,'ww'=>88] ]; echo '<pre>'; var_dump($arr); echo '<hr>'; /* array(3) { ["a"]=> array(3) { ["aa"]=> int(11) ["bb"]=> int(22) ["cc"]=> int(33) } ["b"]=> array(3) { [0]=> int(111) [1]=> int(222) [2]=> int(333) } [0]=> array(5) { [0]=> int(44) [1]=> int(55) [2]=> int(66) ["qq"]=> int(77) ["ww"]=> int(88) } } */ // 三维数组---就是在二维数组的基础上多嵌套了一层 $arr = [ 'a'=>[ 'aa'=>['a1','a2','a3'], 'bb'=>['b1','b2','b3'], 'cc'=>33], 'b'=>[111,222,333], [44,55,66,'qq'=>77,'ww'=>88] ]; echo '<pre>'; var_dump($arr); echo '<hr>'; /* array(3) { ["a"]=> array(3) { ["aa"]=> array(3) { [0]=> string(2) "a1" [1]=> string(2) "a2" [2]=> string(2) "a3" } ["bb"]=> array(3) { [0]=> string(2) "b1" [1]=> string(2) "b2" [2]=> string(2) "b3" } ["cc"]=> int(33) } ["b"]=> array(3) { [0]=> int(111) [1]=> int(222) [2]=> int(333) } [0]=> array(5) { [0]=> int(44) [1]=> int(55) [2]=> int(66) ["qq"]=> int(77) ["ww"]=> int(88) } } */ //foreach 循环遍历三维数组数组 foreach($arr as $key => $value){ echo($key.'-'); foreach($value as $key2 => $value2){ echo($key2.'--'); // var_dump($value2); if(is_array($value2)){ foreach($value2 as $key3 => $value3){ echo($key3.'----'.$value3.'----'); } } } } // a-aa--0----a1----1----a2----2----a3----bb--0----b1----1----b2----2----b3----cc--b-0--1--2--0-0--1--2--qq--ww-- // $a = array( // "one" => array(1,2,3,4), // "two" => array(5,6,7,8), // "three" => array('a','b','c','d') // ); // foreach ($a as $k => $v) { // echo $k . '<br>'; // print_r($v); // echo '<br>'; // foreach ($a[$k] as $index => $value) { // echo $k . '<br>'; // echo $index . '<br>'; // echo $value . '<br>'; // } // }
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:以上代码总结了php数组的定义方式:
1.索引数组--所有下标都是从0开始的正整数。
2.关联数组--所有下标都是自定义的字符串。
1.二维数组--即在一维数组中通过增加一个一维数组定义而成的。+N就是N维数组(多为数组).
foreach(数组 as 键 =>值){循环体}的结构来循环遍历数组(取出被遍历数组中的每一个值。)键和值任选其一都可以。
数组都是键值对(键=>值)的结构,没有认为设置下标就是默认索引数组。人为设置字符串型下标,就是关联数组。在数组中。关联和索引可以同时存在;