6-6-1-php数组相关(2)

1.for比较少用遍历连续数字下标的数组,和c语言差不多,简单记录一下:

for(int $i=0;$i<count($arr);$i++){.....$arr[$i]......}

2.php有专门遍历数组而设计的foreach语句

foreach( $arr as $value ){}

foreach( $arr as $key=>$value){}

多维:使用嵌套

foreach ( $arr as $key => $arr1 ){

  foreach($arr1 as $value ){ ...$value...}

}

3.使用each()函数

each($arr) ->  返回一个有四个元素的关联和索引混合的数组

并移动数组指针,直到返回false

4.list()

为数组赋值:

$info = array("coffee","brown","caffeine");

list($a , , $c)=$info;

echo $c;                             // caffeine

注意:list只能应用于数字索引的数组并假定索引从0开始。索引才有了后面的while(list()=each())的使用。

5.each() 和 list() 循环使用

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

在使用while遍历数组后,each语句已经将指针指向数组末端。再次用while语句需要使用reset()

6.使用数组内部指针控制函数遍历数组

7.数组相关函数

array_values($contacts);                 //数组,返回所有值

array_keys($contacts);                   //数组,返回所有健值

7.1.1 :

in_array(mixed needle ,array haystack, [bool strict] );        //查找某值是否在指定数组中,返回bool

needle:要查找的值(简单数据类型,数组等),

haystack:查找的数组,

strict:十分严格界定数据类型查找。

in_array函数区分查找内容的大小写。

7.1.2

$key_name = array_search("$value",$array )              //参数与上相同,检查某值是否在其中,返回其健。

7.1.3

bool   array_key_exists("key_name",$array);               //检查数组是否存在指定健

对数组中为null的值会返回true。而isset()会。

7.2

函数  $Array = array_flip( $Array );                              //反转数组的健和值

如果一个值出现多次,则取最后一个重复的值覆盖前面的键值对。

如果有值不是字符串或数组类型,则报错。

7.3 函数 $Array = array_reverse( $Array ,bool lose_key );              //反转数组元素顺序

第二个参数是可选的,如果为true ,则键名将丢失。

8.统计元素的个数和唯一性

8.1 函数count() ,sizeof()是他的别名,功能是一样的

int  count( $var , bool mode )

第一个值为传入要计数的数组或对象,第二个参数为可选,为0或1,是否递归查询多维数组中元素的个数。

count ( $web , 1) = 10 ;

8.2 函数 $Array = array_count_values ( $ Array )        //统计数组中值出现的次数

8.3 函数  $Array = array_unique ( $Array );                 //删除数组中重复的值,返回没有重复的新数组。

函数先将值作为字符串排序,然后每个值保留第一次出现的键名的值。注意,先排序,并不是保留出现的第一个。

9.5.3 使用回调函数处理数组的函数

1. array  array_fliter ( array input , "callback function");

第一个参数是需要过滤的数组,第二个参数是将自定义函数以字符串形式传入,

依次将第一个参数的数组的值传入第一个函数,如果返回的是true ,则相应的健值

会传入新形成的array

2.array_walk()

bool array_walk( array &array , callback funcname , (mixed data) );

第一个为要处理的数组,第二个为回调函数,

函数接收的参数依次为: 元素的值,元素的键,(mixed data)

如果需要直接作用于数组的值,将回调函数的第一个参数指定为引用,&$value

function myfunc3( &$value,$key){

  $value = "web";

}

array_walk( $arr , "myfunc3");

array_map ,作用于多个数组。

9.5.4 数组排序

1.

sort(array $array , [sort_flag] );                           //升序

rsort(array $array , [sort_flag] );

此方法键名被忽略,将依序重新使用数字重新索引数组下标。

sort_flag : 指定排序类型。

2.

ksort()                                                           //根据键名排序

krsort()

3.

asort() /arsort()                                              //根据值排序

与sort()相比,将保留键名

9.5.5 拆分、合并数组

1.

array array_slice ( array array , int offset [, int length[,bool preserve_keys]])

去一段值并返回

2.

array array_splice ( array &input , int offset , [ , length [ , replacement]])

移除或替代

3.

array_combine (array key ,array value)

合并数组,第一个数组作为键,第二个数组作为值,两个参数必须有相同数目的元素

4.

array_merge ( array array1 [ , array array2 [ , array array3]])

连接数组。

如果键名有重复,则最后一个将覆盖。

如果键名是整数,将以0开始重新索引。

5.

array_intersect( array1 ,array2 , [ ,array3 ...])

交集。

键名保留不变,只有值比较

6.

array_diff( array1 ,array2 , [ , array3...])

差集

9.5.7其他一些有用的数组处理函数

1. mixed array_rand ( array input [ , int num_req ] ) )

从数组中随机选出一个或多个元素返回。

2.shuffle ( ) 把数组元素随机重新排序

3.array_sum() 返回数组所有值的总和

4.array range( mixed first , mixed second , [ , num step] )

创建并返回指定范围的数组。

时间: 2024-08-01 16:32:59

6-6-1-php数组相关(2)的相关文章

快学Scala习题解答—第三章 数组相关操作

3 数组相关操作 3.1 编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间 random和yield的使用 Scala代码   import scala.math.random def randomArray(n:Int)={ for(i <- 0 until n) yield (random * n).toInt } println(randomArray(10).mkString(",")) 3.2 编写一个循环,将整数数组中相邻的元

Scala学习(三)----数组相关操作

数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不关心其他选择,而只是想马上开始用数组.本篇的要点包括: 1. 若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer 2. 提供初始值时不要使用new 3. 用()来访问元素 4. 用for (elem<-arr)来遍历元素 5. 用for (elem<-arr if…)…yie

Scala详解---------数组相关操作

Scala中提供了一种数据结构-数组,其中存储相同类型的元素的固定大小的连续集合.数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合. 取替声明单个变量,如number0, number1, ..., 和number99,声明一个数组变量,如号码和使用numbers[0],numbers[1],...,numbers[99]表示单个变量.本教程介绍了如何声明数组变量,创建数组和使用索引的过程变量数组.数组的第一个元素的索引是数字0和最后一个元素的索引为元素的总数减去1.

从零学scala(二)数组相关操作、映射和元组

一:数组相关操作 定长数组 val array = Array[String]("a","b","c") //直接初始化数组的内容        println(array.mkString("|")) val array = new Array[String](2) //new一个长度为2的数据在通过更新的方法进行赋值        array.update(0, "0")        array.up

awk入门及awk数组相关实战

知识点: l 记录与字段 l 模式匹配:模式与动作 l 基本的awk执行过程 l awk常用内置变量(预定义变量) l awk数组(工作常用) l awk语法:循环.条件 l awk常用函数 l 向awk传递参数 l awk引用shell变量 l awk小程序及调试思路 [[email protected] ~]# awk --version|head -1 GNU Awk 3.1.7 第1章 记录和字段 record记录==行, field字段相当于列,字段==列. awk对每个要处理的输入数

java中数组相关的问题

1) 空数组中没有获得内存空间,所以无法使用,必须使用new关键字为数据分配内存空间. 2) 在初始化数组时不能静态初始化和动态初始化同时定义,eg:int [3] [3] array2={{1,2,3},{2,3,4},{3,4,5}};这种方法是错误的! 3) Arrays类的使用: A:数组的复制--是通过类Arrays的静态方法copyOf(type[] original,int length)实现的,其中type类型可以是 boolean,int ,short,char,byte! B

JS的数组相关知识

创建数组方法一: var a1=new Array(5); console.log(a1.length);//5 console.log(a1); //[] ,数组是空的 var a2=new Array(5,6); console.log(a2.length);//2 console.log(a2); //[5,6] 创建数组二: var a1=[5]; console.log(a1.length);//1 console.log(a1); //[5] var a2=[5,6]; consol

swift-Array(数组相关属性)

// //  ViewController.swift //  Swift-Array // //  Created by luorende on 16/9/12. //  Copyright © 2016年 luorende. All rights reserved. // import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do a

数组相关知识

1.main函数中String[  ] args是一个字符串数组.可以用Syetem.out.println(args[ ])在命令提示符(dos中).在javac编译后,在java执行时输入字符串.如果要输入args[0][0] 则输入两个字符串 回车便会输出.如果不输入,会报错: 2.深刻理解数组.特别是二维数组和高维数组,需要弄明白他们的遍历,一般一维用一个for循环,二维用一个for循环嵌套一个for循环,以此类推: 3.在myeclipse中,可以使用alt+/快捷按出需要的程序和单词