php数组基础

一、php数组的声明

1、数组中可以有任意类型的数据

2、长度可以变长

3、数组的分类:

a、索引数组:数组是以从0开始的帧数作为索引值

声明:$arr = array(1,2);$arr[0] = 1;

计算数组长度:count($arr);

b、关联数组:数组是以字符串作为索引值

声明:$arr["name"] = "gh";

$arr = array("name"=>"zs","age"=>2);

索引数组和关联数组的整合使用:

$arr = array("name"=>"zs",2,"age"=>3,4);

如果要去到name就是$arr["name"],如果想取到2,就是$arr[0],如果想取到4,就是arr[1],关联数组的下标不会影响到索引数组的排序

多维数组:

$arr1 = array(1,2,3,4);

$arr2 = array("abc","def");

$arr = array($arr1,$arr2);

二、php数组的遍历

1、for循环:for($i=0;$<count($arr);$i++){}尽量不要用,因为索引数组和关联数组可能混合使用

2、foreach($arr as $value){}或者foreach($arr as $key=>$value){}其中$key代表数组的下标,$value代表数组的值

遍历二维数组:

$arr = array(array(1,2,3),array("a","b"));

foreach($arr as $key=>$value){
        foreach($value as $k=>$v){
            echo "\$arr[".$key."][".$k."] =".$v."&nbsp;&nbsp;";
        }
        echo "<br/>遍历一次换行<br/>";
    }

3、while()

$arr = array("hello"=>1,2,3);

each()方法:此方法返回一个数组,形如Array ( [1] => 1 [value] => 1 [0] => hello [key] => hello ),0和key代表数组的下表,1和value代表下表对应的值,每次执行后向前执行一步,直至数组中不在有数据了

print_r(each($arr));

while($a = each($arr)){

echo $a["key"]."====>".$a["value"]

}

4、list()将数组中的值转换成变量,只能识别到索引数组

$arr = array(1,2,3);

list($a,$b,$c)=$arr;

echo $a."-----".$b."-----".$c;

while(list($key,$value)=each($arr)){}

三、php数组的相关处理函数

current(array arr) :返回当前指针对应的内容的值

key(array arr):返回当前指针对应的索引的值

这两个函数都不能使指针进行移动

$arr = array("hello"=>"one","two","three",1,2,3);

$a = current($arr);返回的是当前指针对应的值,输出one

$b = key($arr);返回当前指针位置对应的索引的值,输出hello

next(array arr):使数组的指针向下移动一个

end(array arr):使数组的指针移动到最后

prev(array arr):使数组的指针向上移动一个

reset(array arr):使数组的指针重新移动到最开始的位置

count(array arr):计算数组的长度

sizeof(array arr):计算数组长度

array_change_key_case(array arr,形态常数):常熟形态:CASE_UPPER,CASE_LOWER

$arr = array("heLLo"=>"one","WWW"=>"two","baidu"=>"three");

$newarr = array_change_key_case($arr,CASE_UPPER);

print_r($newarr);

输出的结果为:Array ( [HELLO] => one [WWW] => two [BAIDU] => three )

array_chunk(目标数组,分解的索引个数[,boolean]):把一个数组分解成还有多个小数据的数组,最后一个boolean,如果为true则表示保留之前数组的索引名字,否则全都是索引数组的形式,此值默认为false

例子:$arr = array("hello"=>"one","two","three",1,2,3,"www");

$newarr = array_chunk($arr,3,true);

输出结果为:Array ( [0] => Array ( [hello] => one [0] => two [1] => three ) [1] => Array ( [2] => 1 [3] => 2 [4] => 3 ) [2] => Array ( [5] => www ) )

最后一个参数是false时:

Array ( [0] => Array ( [0] => one [1] => two [2] => three ) [1] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [2] => Array ( [0] => www ) )

可以看到第二中方式中的所有索引都是数字

array_count_values(数组名称):用于计算数组中某个值出现的次数,返回的值仍然是个数组,原数组中的值作为数组的现在数组的下标,次数作为数组的长度

如:

$arr = array("hello"=>"one","two","three",1,2,3,"one","two",1,2,3"www");

$newarr = array_count_values($arr);

print_r($newarr);

输出的结果为:

Array ( [one] => 2 [two] => 2 [three] => 1 [1] => 2 [2] => 2 [3] => 2 [www] => 1 )

array_fill(起始索引位置,区段大小,指定字元):用自定义数值填满数组中指定索引的区段

array_filter(目标数组,定义的函数):过滤函数

例子:

$arr = array("hello"=>"one","two","three",1,2,3,-5,-7,"www");

function func1($value){

if($value > 0){

return true;

}else return false;

}

$newarr = array_filter($arr,func1);//表示将arr数组中的每一个值作为参数传入到func1中去进行比较,如果返回true,则保留到newarr数组中去,否则舍弃(这个地方,所有字符串都被识别为0)。

array_walk(array arr,function func1[,userdata]):对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。

function func1($value,$key){

echo "$key --> $value <br/>";

}

$arr = array("a"=>"cat","b"=>"dog");

array_walk($arr,func1);

输出的结果为:$a --> cat

$b --> dog

还有稍微复杂点的例子,可以参考这里:http://www.w3school.com.cn/php/func_array_walk.asp

array_map(回调函数,array arr):将回调函数作用到给定数组的单元上

例子:function func1($value){

return $value*$value;

}

$newarr = array_map(func1,$arr);

此时$newarr是一个数组,其中存放着$arr中的每个值得平方值

array_flip(目标数组):交换数组中的键和值,如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。

array_sum(目标数组):将数组中的所有值的和以整数或浮点数的结果返回。

array_unique():去除数组中重复的值

array_values():返回数组中所有的值,忽略原有的键名,重新使用索引数组

array_keys(array arr):返回数组中的所有键

in_array(要检索的元素,array arr[,boolean是否按数据类型进行检索]):查找某个值是否在数组中

array_search(要查找的元素,array $arr):返回对应元素对应的键名,不存在返回false

array_key_exists(下标值,array $arr):判断下标是否存在,返回boolean

extract(array $arr):将数组转换成变量,只针对关联数组

compact():将变量转换成数组,生成的数组是关联数组,而且数组的键值和内容相同

php数组基础,布布扣,bubuko.com

时间: 2024-11-03 21:32:43

php数组基础的相关文章

Java 数组基础,java.util.Arrays

定义数组 方式1(推荐,更能表明数组类型) 方式2(同C语言) 方式3?定义时直接初始化 数组运用基础 数组长度 equals() 数组元素不为基本数据类型时 二维数组 二维数组基础 变长的二维数组 java.utils.Arrays 类 参考文献: ? 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int[10]; 数组名,也即引用a,指向数组元素的首地

Java 数组基础

数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int[10]; 数组名,也即引用a,指向数组元素的首地址. 方式2(同C语言) type变量名[] = new type[数组中元素的个数]; 如: int a[] = new int[10]; 方式3 定义时直接初始化 type[] 变量名 = new type[]{逗号分隔的初始化值}; 其中红色部分可省

Json数组基础知识

1.对象是一个无序的"'名称/值'对"集合. (1)一个对象以"{"(左括号)开始,"}"(右括号)结束. (2)每个"名称"后跟一个":"(冒号): (3)"'名称/值' 对"之间使用","(逗号)分隔.(如图所示,图中表示数据的方式是类似非确定性自动机的形式,没学过编译原理的人,可能理解起来困难点,实际上也是正则表达式的形式.下同) 例子:表示人的一个对象: 1

shell脚本进阶之数组基础

SHELL脚本--shell数组基础 ? 数组和变量的区别:变量在内存中占用的空间是离散的,数组在内粗中开辟一段连续的大内存空间,随后数组中的每个元素都放入数组内存中.数组元素使用index标识. ? bash里有两种数组普通数组和关联数组.普通数组只能使用整数类形数值作为数组索引,关联数组可以使用字符串作为索引.关联数组的另外三种称呼:字典(dict),hash结构和映射(map),是一种key和value一一对应的关系. 一.普通数组 1.1定义普通数组 方法一: [[email prote

数组基础知识

/* ============================================================================ Name : TestArray.c Author : lf Version : Copyright : Your copyright notice Description : 数组的基本使用 =========================================================================

java数组基础知识

数组的定义:int[] array=new array[n];int array[]={, , , ,};定义了数组,JVM就会给其一个空间,数组是应用类型的数据类型,其存储方式是随机存储. 数组的遍历,一般是通过循环来遍历其元素的,二维数组可以是通过霜或双重循环来遍历.数组的下标是从0开始的. 数组的替换,数组提供了一个方法,两种重载的形式,此方法为fill(),可以通过此方法来填充数组或者替换数组指定位置的元素. public class Array_Fill { public static

PHP数组基础知识总结以及排序

最近刚刚实习,经常用到php的数组,所以总结一下,以后不用随时去乱搜. 一:基础知识 PHP支持数字索引数组和关联数组,关联数组允许使用更有意义的数据(如字符串)作为索引.以及允许间隔性地使用数组和字符串作为数组的索引. 1.数组定义: $arr = [1,2,3,4];//数字索引数组 php5.4以上提供的新方式 $arr = ['a'=>1,'b'=>2];//关联索引数组 $arr = array(1,2,3,4); $arr = array('a'=>1,'b'=>2);

JavaScript数组基础知识

前言: 其实作为一个Java程序员,对JS程序一直都有点"不屑一顾"的感觉,很多人肯定和我一样,有其他语言基础,JS语法根本就懒得看,直接写程序,一般工作也都够用了.但是最近在做一个偏Web Excel项目,需要大量的JS编程和优化,抽空又"恶补"了下JS基础.发现原来对JS的理解偏差还是很大的.不过JS这个东西深入起来其实比Java要容易的. 基础: JS数组和Java数组很类似,值都是有序的,索引从0开始.但是JS数组最大可能的索引为2的32次最大能容纳4294

JAVA总裁--Java数组基础知识

1.数组的定义: 数组是由一组类型相同的数据元素构成的有序集合,每个数据元素称为一个数组元素(简称为元素),每个元素受n(n≥1)个线性关系的约束,每个元素在n个线性关系中的序号i1.i2.-.in称为该元素的下标,并称该数组为 n 维数组. 2.数组的特点: 元素本身可以具有某种结构,属于同一数据类型: 数组是一个具有固定格式和数量的数据集合. 3.数组的语法: package com.eduask.test; import java.util.Scanner; public class Ar