zoukankan      html  css  js  c++  java
  • PHP学习3——数组

     主要内容:

    1. 简介
    2. 常用的方法
    3. 循环遍历数组
    4. PHP预定义数组
    5. 数组的处理函数

    数组

    PHP由于是弱类型的语言,他的变量类型是可以自由变换的,他的数组很自由,长度是可以动态增加的。

    他的索引默认为数字0开始,另外有一个很强大的地方就是,他的数组可以和字典一样,通过(key-value)键值对模式来存储(厉害哦)

    <?php
    	//声明数组,并初始化
    	$xiaoli=array("小李",25,"男","google公司","xiaoli@php.com");
    	//输出数组
    	print_r($xiaoli);
    	
    	echo "<br/>";
    	$xiaobai[2]="小白";
    	$xiaobai[]=20;
    	$xiaobai[]="女";	
    	$xiaobai[]="baidu公司";	
    	$xiaobai[]="xiaobai@php.com";	
    	//输出数组
    	print_r($xiaobai);
    	
    	echo "<br/>";
    	$bai["姓名"]="小白";
    	$bai['年龄']=20;
    	$bai['性别']="女";	
    	$bai['公司']="baidu公司";	
    	$bai['邮箱']="xiaobai@php.com";	
    	//输出数组
    	print_r($bai);
    ?>
    

    输出

    Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => xiaoli@php.com ) 
    Array ( [2] => 小白 [3] => 20 [4] => 女 [5] => baidu公司 [6] => xiaobai@php.com ) 
    Array ( [姓名] => 小白 [年龄] => 20 [性别] => 女 [公司] => baidu公司 [邮箱] => xiaobai@php.com )
    

    使用数字作为key的叫做“索引数组”,使用其他作为key的叫做“关联数组”,可以使用array在初始的时候就是默认使用索引,也可以制定为关联数组。

    <?php
    	//声明 索引数组,并初始化
    	$xiaoli=array("小李",25,"男","google公司","xiaoli@php.com");
    	//输出数组
    	print_r($xiaoli);
         echo "<br/>"; 
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	//输出数组
    	print_r($xiaoli);
    
    ?>
    

    输出

    Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => xiaoli@php.com ) 
    Array ( [姓名] => 小李 [年龄] => 25 [性别] => 男 [0] => google公司 [1] => xiaoli@php.com )
    

    key也可以是变量,这样更灵活

    <?php
    	//声明 索引数组,并初始化
    	$xiaoli=array("小李",25,"男","google公司","xiaoli@php.com");
    	//输出数组
    	print_r($xiaoli);
    	
    	echo "<br/>";
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	//输出数组
    	print_r($xiaoli);
    	
    	$a="姓名";
    	echo "<br/>";
    	echo $xiaoli[$a];
    	$a="年龄";
    	echo "<br/>";
    	echo $xiaoli[$a];
    
    ?>
    

    输出

    Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => xiaoli@php.com ) 
    Array ( [姓名] => 小李 [年龄] => 25 [性别] => 男 [0] => google公司 [1] => xiaoli@php.com ) 
    小李
    25
    

    常用的方法

    each($arr)返回数组中当前指针的键值对

    print_r($arr)输出数组所有元素

    var_dump($arr)输出数组的所有元素以及类型信息

    list($a,$b)=array("小李",25,"男","google公司")这里一次性给多个变量赋值,$a="小李",$b=25;

    循环遍历数组

    这里有3中方法来遍历数字

    • for($i=0;$i<count($arr);$i++){}
    • foreach($arr as $x=>$y){}
    • while($v=each($arr)){}

    foreach.php

    <?php
    
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	foreach($xiaoli as $a=>$b){
    		//each($xiaoli);
    		echo "数组中 $a 元素是 $b <br/>";
    	}
    
    ?>
    

    输出

    数组中 姓名 元素是 小李 
    数组中 年龄 元素是 25 
    数组中 性别 元素是 男 
    数组中 0 元素是 google公司 
    数组中 1 元素是 xiaoli@php.com 
    

    貌似for循环只能遍历纯索引数组

    for.php

    <?php
    
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	for($i=0;$i<count($xiaoli);$i++){
    		//each($xiaoli);
    		echo "数组中 ".$i."元素是 ".$xiaoli[$i]." <br/>";
    	}
    
    ?>
    

    输出

    数组中 0元素是 google公司 
    数组中 1元素是 xiaoli@php.com 
    
    Notice: Undefined offset: 2 in C:xampphtdocsdemo2.php on line 7
    数组中 2元素是 
    
    Notice: Undefined offset: 3 in C:xampphtdocsdemo2.php on line 7
    数组中 3元素是 
    
    Notice: Undefined offset: 4 in C:xampphtdocsdemo2.php on line 7
    数组中 4元素是 
    

    while_each.php

    <?php
    
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	while($v=each($xiaoli)){
    		echo "数组中 ".$v["key"]."元素是 ".$v["value"]." <br/>";
    	}
    
    ?>
    

    输出

    数组中 姓名元素是 小李 
    数组中 年龄元素是 25 
    数组中 性别元素是 男 
    数组中 0元素是 google公司 
    数组中 1元素是 xiaoli@php.com 
    

    PHP预定义数组

    • $GLOBALS(包含了全部变量的全局组合数组)
    • $_SERVER(头信息,路径,脚本位置等信息的数组)
    • $_POST
    • $_GET
    • $_COOKIE
    • $_SESSION
    • $_REQUEST(默认情况下包含了$_POST,$_GET,$_COOKIE的数组)

    数组的处理函数

    array_sum($arr)返回数组中所有value的值的和,字符串当做0

    in_array($key,$arr)如果$key在$arr数组中,返回true,否则返回false

    array_count_values($arr)用来统计所有值出现的次数

    array_sum.php

    <?php
    
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	$a=array_sum($xiaoli);
    	echo $a;
    
    ?>
    

    输出

    =>25
    

    in_array.php

    <?php
    
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
    	findkey("小李",$xiaoli);
    	echo "<br/>";
    	findkey("小小",$xiaoli);
    	
    	//在数组xiaoli中找key
    	function findkey($key,$xiaoli){
    		if(in_array($key,$xiaoli)){
    			echo "fund ".$key;
    		}else{
    			echo "not fund ".$key;
    		}
    	}
    
    	
    ?>
    

    输出

    fund 小李
    not fund 小小
    

    array_count_values.php

    <?php
    
    	//声明 关联数组,并初始化
    	$xiaoli=array("姓名"=>"小李","姓名1"=>"小李","姓名2"=>"小李","姓名3"=>"小李",
    	"年龄"=>25,25,25,25,25,666,1,666,666,
    	"性别"=>"男","google公司","xiaoli@php.com");
    	print_r(array_count_values($xiaoli));
    
    	
    ?>
    

    输出

    Array ( [小李] => 4 [25] => 5 [666] => 3 [1] => 1 [男] => 1 [google公司] => 1 [xiaoli@php.com] => 1 )
    

    ok数组的学习就到这里。

  • 相关阅读:
    面试时面试官想要听到什么答案(关于一些vue的问题)
    Redis主从复制以及主从复制原理
    当面试官问你:如何进行性能优化?
    swoole通往大神之路——swoole任务中心说明及进程任务架构搭建
    全局句柄表
    句柄表(私有句柄表)
    关于VAD的两种内存隐藏方式
    通过修改VAD属性破除锁页机制
    R3环申请内存时页面保护与_MMVAD_FLAGS.Protection位的对应关系
    利用内存锁定技术防止CE修改
  • 原文地址:https://www.cnblogs.com/1906859953Lucas/p/9427855.html
Copyright © 2011-2022 走看看