首页 php教程 php手册 笨鸟学php(六) 数组

笨鸟学php(六) 数组

Jun 21, 2016 am 08:47 AM
array list

一、数组概述

1.1 数组是复合类型

1.2 数组中可以存储任意长度的数据, 也可以存储任意类型的数据


二、数组的类型

2.1 索引数组: 下标是顺序整数作为索引

<?php
	$user[0] = 1;
	$user[1] = "zhangsan";
	$user[2] = "aaa@bb.com";
	
	echo &#39;<pre class="brush:java;">&#39;;
	print_r($user);
	echo &#39;
登录后复制
'; ?> 2.2 关联数组: 下标是字符串作为索引

<?php
	$user["id"] = 1;
	$user["name"] = "zhangsan";
	$user["email"] = "aaa@bb.com";
	
	echo &#39;<pre class="brush:java;">&#39;;
	print_r($user);
	echo &#39;
登录后复制
'; $user["name"] = "lisi"; echo $user["name"]; ?>

三、数组的多种声明方式

3.1 直接为数组元素赋值

a. 如果索引下标不给值,就会从0开始顺序索引
b. 如果给出索引下标,下一个就会是从最大的开始增1

c. 如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值
d. 混合声明时,索引和关联不互相影响(不影响索引下标的声明)


3.2 使用array()函数

a. 默认是索引数组

b. 如果为关联数组和索引数组指定下标,使用 键=>值
c. 多个成员之前使用“,”分割

<?php
	$user1 = array (1, "zhsangsan", 10, "nan", "aaa@bbb.com");
	echo &#39;<pre class="brush:java;">&#39;;
	print_r($user1);
	echo &#39;
登录后复制
'; /** Array( [0] => 1 [1] => zhsangsan [2] => 10 [3] => nan [4] => aaa@bbb.com ) */ $user2 = array("id"=>1, "name"=>"zhsangsan", "age"=>10, 100=>"nan", "aaa@bbb.com"); echo '
&#39;;
	print_r($user2);
	echo &#39;
登录后复制
'; /** Array( [id] => 1 [name] => zhsangsan [age] => 10 [100] => nan [101] => aaa@bbb.com ) */ ?>

重要知识点: 二维数组

<?php
	$info=array(
		"user"=>array(
				array(1, "zansan", 10, "nan"),
				array(2, "lisi", 20, "nv")
		 )
	);
	echo $info["user"][1][1]; // lisi
	echo &#39;<pre class="brush:java;">&#39;;
	print_r($info);
	echo &#39;
登录后复制
'; /** Array ( [user] => Array ( [0] => Array ( [0] => 1 [1] => zansan [2] => 10 [3] => nan ) [1] => Array ( [0] => 2 [1] => lisi [2] => 20 [3] => nv ) ) ) */ ?>

四、数组的遍历

4.1 使用for语句循环遍历(不推荐)

局限性: 数组必须是索引数组, 而且下标必须是连续的 (然而索引数组下标可以不连续, 数组还可能是关联数组)

<?php
  	$user = array(1, "zhasna", "aaa@bb.com");
	for($i = 0; $i < count($user); $i++){
		echo "\$user[{$i}]=".$user[$i]."<br/>";
	}
	
	/**
	 	$user[0]=1
		$user[1]=zhasna
		$user[2]=aaa@bb.com
	 */
?>
登录后复制

4.2 使用foreach语句循环遍历(强烈推荐)

循环次数由数组的元素个数决定, 每一次循环都会将数组中的元素分别赋值给后面的变量

<?php
    $user=array(1, "name"=>"zhasna", "age"=>40, 100=>"nan", "aaa@bb.com");
    foreach($user as $key => $val){   // $var 是自定义变量, $key自定义变量
  		echo $key." =====> ".$val."<br/>";
    }
    
    /*
     	0 =====> 1
		name =====> zhasna
		age =====> 40
		100 =====> nan
		101 =====> aaa@bb.com
     */
    
    foreach($user as $val){   // 不要key也可以, 直接遍历$user的值
  		echo $val."<br/>";
    }
    
    /*
     	1
     	zhasna
		40
		nan
		aaa@bb.com
     */
?>
登录后复制

4.3 使用while(), list(), each() 组合循环遍历(不推荐)

each() 函数:

* 需要一个数组作为参数

* 返回来的也是一个数组

* 返回来的数组时0, 1, key, value四个下标, 0和key下标是当前数组元素的键, 1和value下标是当前数组元素的值

* 默认当前元素就是第一个元素

* 每执行一次后就会将当前元素向后移动

* 如果已经到了最后还执行这个函数, 则返回false

<?php
	$user = array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
	
	while($arr = each($user)){
		// echo $arr[0]."==>".$arr[1]."<br/>";
		echo $arr["key"]." ----> ".$arr["value"]."<br/>";
	}
	
	/**
	 	id ----> 1
		name ----> zhangsan
		age ----> 10
		sex ----> nan
	 */
?>
登录后复制

list() 函数:

* list()=array(); 需要将一个数组赋值给这个函数

* 数组中的元素个数要和list()函数中的参数个数相同
* 数组中的每个元素值会赋值给list()函数中的每个参数,list()将每个参数转为变量

* list()只能接收索引数组

<?php
	list($name, $age, $sex) = array("zansan", 10, "nnnnn");
	echo $name."<br/>";
	echo $age."<br/>";  // list中的值和数组中的值一一对应
	echo $sex."<br/>";  // 如果不想给name赋值, 那就写成list(, $age, $sex)
	/*
	 	zansan
		10
		nnnnn
	 */
	 
	$user1 = array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
	list($key, $value) = each($user1);  // Array ( [1] => 1  [0] => id  ) 
	echo $key." --> ".$value;
	/*
	 	id --> 1
	 */
	
	$user2 = array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
	while(list($key, $value) = each($user2)){
		echo $key." ==> ".$value."<br/>";
	}
	/*
	 	name ==> zhangsan
		age ==> 10
		sex ==> nan
	 */
?>
登录后复制









本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

php如何实现Redis的List操作 php如何实现Redis的List操作 May 26, 2023 am 11:51 AM

List操作//从list头部插入一个值。$ret=$redis->lPush('city','guangzhou');//从list尾部插入一个值。$ret=$redis->rPush('city','guangzhou');//获取列表指定区间中的元素。0表示列表第一个元素,-1表示最后一个元素,-2表示倒数第二个元素。$ret=$redis->l

使用C#中的Array.Sort函数对数组进行排序 使用C#中的Array.Sort函数对数组进行排序 Nov 18, 2023 am 10:37 AM

标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.Sort函数对数组进行排序,并提供具体的代码示例。首先,我们需要了解一下Array.Sort函数的基本用法。Array.So

java中JSONArray互相转换List怎么实现 java中JSONArray互相转换List怎么实现 May 04, 2023 pm 05:25 PM

1:JSONArray转ListJSONArray字符串转List//初始化JSONArrayJSONArrayarray=newJSONArray();array.add(0,"a");array.add(1,"b");array.add(2,"c");Listlist=JSONObject.parseArray(array.toJSONString(),String.class);System.out.println(list.to

简单明了的PHP array_merge_recursive()函数使用方法 简单明了的PHP array_merge_recursive()函数使用方法 Jun 27, 2023 pm 01:48 PM

在进行PHP编程时,我们常常需要对数组进行合并。PHP提供了array_merge()函数来完成数组合并的工作,不过当数组中存在相同的键时,该函数会覆盖原有的值。为了解决这个问题,PHP在语言中还提供了一个array_merge_recursive()函数,该函数可以合并数组并保留相同键的值,使得程序的设计变得更加灵活。array_merge

如何使用PHP中的array_combine函数将两个数组拼成关联数组 如何使用PHP中的array_combine函数将两个数组拼成关联数组 Jun 26, 2023 pm 01:41 PM

在PHP中,有许多强大的数组函数可以使数组的操作更加方便和快捷。当我们需要将两个数组拼成一个关联数组时,可以使用PHP的array_combine函数来实现这一操作。这个函数实际上是用来将一个数组的键作为另一个数组的值,合并成一个新的关联数组。接下来,我们将会讲解如何使用PHP中的array_combine函数将两个数组拼成关联数组。了解array_comb

list如何转numpy list如何转numpy Nov 22, 2023 am 11:29 AM

list转numpy的方法:1、使用numpy.array()函数,该函数的第一个参数是列表对象,可以是一维或多维的列表;2、使用numpy.asarray()函数,该函数会尽量使用输入列表的数据类型;3、使用numpy.reshape()函数,可以将一维的列表转换为多维的NumPy数组;4、使用numpy.fromiter()函数,该函数的第一个参数是可迭代对象。

为什么在Python中list.sort()不会返回已排序的列表? 为什么在Python中list.sort()不会返回已排序的列表? Sep 18, 2023 am 09:29 AM

示例在这个例子中,我们先看看list.sort()的用法,然后再继续。在这里,我们创建了一个列表并使用sort()方法按升序排序-#CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#SorttheListsinAscendingOrdermyList.sort(

如何使用C#中的List.Sort函数对列表进行排序 如何使用C#中的List.Sort函数对列表进行排序 Nov 17, 2023 am 10:58 AM

如何使用C#中的List.Sort函数对列表进行排序在C#编程语言中,我们经常需要对列表进行排序操作。而List类的Sort函数正是为此设计的一个强大工具。本文将介绍如何使用C#中的List.Sort函数对列表进行排序,并提供具体的代码示例,帮助读者更好地理解和应用该函数。List.Sort函数是List类的一个成员函数,用于对列表中的元素进行排序。该函数接

See all articles