一、数组的定义

        数组:变量存储的有序序列

$数组名称 = 数组的定义;// 2种形式

php中的数组包括2中数组类型

索引数组:

关联数组:


    索引数组:下标为数字的数组。

        $数组名称[下标]  下标 从0开始的数字,根据数字的不同,值不同

    

    //索引数组定义
    $arr[0]=123;
    $arr[1]="liu";
    $arr[2]="mia";
    $arr[3]="china";
    echo $arr[0]."<br/>";//返回123;
    print_r($arr);//打印数组,返回Array ( [0] => 123 [1] => liu [2] => mia [3] => china )
    echo count($arr);//返回数组个数,4
    //关键词定义
    $arr=array(123,"liu","mia","china");
    echo $arr[0];//返回123
    print_r($arr);//打印数组结构
    echo count($arr);//打印数组个数


    

    关联数组:下标为字符串的数组

        $数组名称["下标"]

    //关联数组定义  
    $arr["one"]="中国";
    $arr["demo"]="美国";
    $arr["test"]="法国";
    $arr["un"]="英国";
    echo $arr["one"];//返回中国
    print_r($arr);//打印数组结构
    echo count($arr);//打印数组个数
    //array关键词定义
    $arr=array("one"=>"中国","demo"=>"美国","test"=>"法国","un"=>"英国");
    echo $arr["demo"];//返回美国
    print_r($arr);//打印数组结构
    echo count($arr);

    

    二维数组:

        

//二维数据组定义
$arr=array(
	array("中国","美国","法国","英国"),
	array("张三","李四","王五"),
);
echo $arr[0][2];//[0]表示第0个数组,[2]表示第0个数组中第二个元素
print_r($arr);//返回Array ( [0] => Array ( [0] => 中国 [1] => 美国 [2] => 法国 [3] => 英国 ) [1] => Array ( [0] => 张三 [1] => 李四 [2] => 王五 ) )
echo count($arr);//返回2个数组


    foreach 循环 遍历数组

    格式:

    foreach (数组名称 as  $key=>$val){

    循环体

    }

    $key  依次遍历数组的下标

    $val  依次遍历数组的值

    遍历:访问到数组中的每一个元素。

//foreach
$arr=array("张三","×××","王五","马六");
	foreach($arr as $key=>$val){
		echo $key."--->".$val."--->".$arr[$key]."<br/>";
	}


    数组函数

//count    int count(array  $arr); 返回数组的元素个数。
$arr=array("张三","×××","王五","马六");
echo count($arr);//返回4

//explode将字符串分割成数组
$str="a.class.php";
$exp=explode(".",$str);//"."表示以点来分割成数组
print_r($exp);//返回Array ( [0] => a [1] => class [2] => php )

//join  string join(string $flag,array $arr); 将数组以某个符号连接并返回字符串implode  别名
$arr=array("张三","李四","王五");
$str=join("#",$arr);//"#"表示将数组以#连接并返回字符串
echo $str;//返回结果:张三#李四#王五

//array_values  array array_values ( array $input ) 返回数组中所有的值,并由值组成的新的索引数组。
$arr=array("one"=>"中国","demo"=>"法国","test"=>"英国");
$txt=array_values($arr);
print_r($txt);//Array ( [0] => 中国 [1] => 法国 [2] => 英国 )

//array_keys 	array array_keys ( array $input ) 返回数组中所有的键名,并组成的新的索引数组。
$arr=array("one"=>"中国","demo"=>"法国","test"=>"英国");
$kName=array_keys($arr);
print_r($kName);//Array ( [0] => one [1] => demo [2] => test )

//array_pop  mixed array_pop ( array &$array ) 删除数组的最后一个元素,返回最后一个元素的值
$arr=array("one"=>"中国","demo"=>"法国","test"=>"英国");
$pop=array_pop($arr);
//echo $pop;//查看删除的最后一个元素值
print_r($arr);//Array ( [one] => 中国 [demo] => 法国 )

//list 	void list ( mixed $varname , mixed $... )  把数组中的值 赋给对应的变量,对关联无效 。 对索引有效。
$arr=array("中国","法国","英国");
list($name1,$name2,$name3)=$arr;	
echo $name1;//中国,$name2返回法国,$name3返回英国
ps:如果某些值不用,用逗号分开。list($name1,,$name3)=$arr;

//next 下一个元素,pver上一个元素,end最后一个元素
$arr=array("中国","法国","英国");	
echo next($arr);//将下标指向法国
echo prev($arr);//将下标指向中国
echo end($arr);//将下标指向英国

//in_array()  bool in_array ( mixed $needle , array $haystack  ) 检查数组中某个值是否存在
$arr=array("中国","法国","英国","韩国");	
if(in_array("韩国",$arr)){
	echo "韩国存在数组";
}else{
	echo "韩国不在数组";
}//返回韩国存在数组

//array_reverse 	array array_reverse ( array $array ) 翻转数组排序
$arr=array("中国","法国","英国","韩国");	
$brr=array_reverse($arr);
print_r($brr);//Array ( [0] => 韩国 [1] => 英国 [2] => 法国 [3] => 中国 )

//冒小泡排序
 $brr = array(3,6,14,7,2,20,35);
 for($i=0;$i<count($brr);$i++){
 	for($j=$i+1;$j<count($brr);$j++){
 		if($brr[$i]>$brr[$j]){
 			$tmps=$brr[$i];
			$brr[$i]=$brr[$j];
			$brr[$j]=$tmps;
 		}
 	}
 }	
 print_r($brr);//Array ( [0] => 2 [1] => 3 [2] => 6 [3] => 7 [4] => 14 [5] => 20 [6] => 35 )