PHP数组操作汇总 php数组的使用技巧
对于Web编程来说,最重要的就是存取和读写数据了。存储方式可能有很多种,可以是字符串、数组、文件的形式等。
数组,可以说是PHP的数据应用中较重要的一种方式。PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之。
1. 数组定义
数组的定义使用 array()方式定义,可以定义空数组:
代码如下:
$number = array(1,3,5,7,9);
//定义空数组
$result = array();
$color =array("red","blue","green");
//自定义键值
$language = (1=>"English",3=>"Chinese",5=>"Franch");
//定义二维数组
$two = array(
"color"=>array("red","blue"), //用逗号结尾
"week"=>array("Monday","Friday") //最后一句没有标点
);
?>
2. 创建数组
compact()
compact()函数——将一个或多个变量(包含数组)转换为数组:array compact ( mixed $varname [, mixed $... ] )。
代码如下:
$number = "1,3,5,7,9";
$string = "I'm PHPer";
$array = array("And","You?");
$newArray = compact("number","string","array");
print_r ($newArray);
?>
compact()函数用于将两个或多个变量转换为数组,当然也包含数组变量。其参数是变量的名称而非带有$全名。相反的函数是extract()作用顾名思义就是将数组转换为单个的字符串,键值作为其字符串名称,数组值作为字符串的值。
运行结果:
代码如下:
Array (
[number] => 1,3,5,7,9
[string] => I'm PHPer
[array] => Array ( [0] => And [1] => You? )
)
array_combine()
array_combine()——将两个数组重组成一个数组,一个作键值一个做的值:array array_combine ( array $keys , array $values )
代码如下:
$number = array("1","3","5","7","9");
$array = array("I","Am","A","PHP","er");
$newArray = array_combine($number,$array);
print_r ($newArray);
?>
array_combine函数不多说了,谁看了都明白。
运行结果:
Array ( [1] => I [3] => Am [5] => A [7] => PHP [9] => er )
range()
range()函数——创建指定范围的数组:
代码如下:$array1 = range(0,100,10);//0为起始值,100为结束值,10为步进值(默认步进值为1).
print_r($array1);
echo"
";
$array2 = range("A","Z");
print_r($array2);
echo "
";
$array3 = range("z","a");
print_r($array3);
?>
array_fill()
array_fill()函数——填充数组函数:
代码如下: $array = range(1,10);
$fillarray = range("a","d");
$arrayFilled = array_fill(0,5,$fillarray);//这里的$fillarray可以是字符串,如"test".
echo "
"; <br>print_r ($arrayFilled); <br>echo "
$keys = array("string","2",9,"SDK","PK");
$array2 = array_fill_keys($keys,"testing");
echo "
"; <br>print_r ($array2); <br>echo "
?>
运行结果:
代码如下: Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[1] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[2] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[3] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[4] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
)
Array
(
[string] => testing
[2] => testing
[9] => testing
[SDK] => testing
[PK] => testing
)
3. 数组的遍历
foreach遍历
foreach (array_expression as $value){}
foreach (array_expression as $key => $value){}
代码如下:
$speed = array(50,120,180,240,380);
foreach($speed as $keys=>$values){
echo $keys."=>".$values."
";
}
?>
运行结果:
0=>50
1=>120
2=>180
3=>240
4=>380
while循环遍历
while循环遍历一般结合list函数,以下是实例
代码如下: $staff = array(
array("姓名","性别","年龄"),
array("小张","男",24),
array("小王","女",25),
array("小李","男",23)
);
echo "
$name | $sex | $age |
?>
for循环遍历
代码如下:$speed = range(0,220,20);
for($i =0;$i
}
?>
运行结果:
0 20 40 60 80 100 120 140 160 180 200 220
4. 数组的指针操作
涉及函数包括reset、prev、end、next、current、each。
实例一:next 与 prev
代码如下: $speed = range(0,220,20);
echo current($speed);//输出当前位置的值(在数组的开头位置)
$i = rand(1,11);
while($i--){
next($speed);//指针从当前位置向后移动一位
}
echo current($speed);//输出当前位置的值
echo "
";
echo prev($speed);//输出前一位置数组值
echo "
";
echo reset($speed);//重置数组的指针,将指针指向起始位置
echo "
";
echo end($speed);//输出最后位置的数组值
echo "
";
?>
运行结果:
0220
200
0
220
实例二:each函数指针操作
代码如下: $speed = range(0,200,40);
echo "each实现指针下移
";
echo "0挡的速度是".current(each($speed))."
";
echo "1挡的速度是".current(each($speed))."
";
echo "2挡的速度是".current(each($speed))."
";
echo "3挡的速度是".current(each($speed))."
";
echo "4挡的速度是".current(each($speed))."
";
echo "5挡的速度是".current(each($speed))."
";
echo "使用each函数实现数组指针的移动,进行数组遍历
";
reset($speed);//这里是将数组指针指向数组首
while(list($key,$value)=each($speed)){
echo $key."=>".$value."
";
}
?>
运行结果:
代码如下: each实现指针下移
0挡的速度是0
1挡的速度是40
2挡的速度是80
3挡的速度是120
4挡的速度是160
5挡的速度是200
使用each函数实现数组指针的移动,进行数组遍历
0=>0
1=>40
2=>80
3=>120
4=>160
5=>200
5. 数组的增添删改操作
增添数组成员
实例一:$num[] = value直接赋值追加到数组末尾:
[code]$num = array(1=>80,2=>120,3=>160);
echo "使用表达式添加数组成员
";
$num[]=240;
print_r($num);
?>
运行结果:
使用表达式添加数组成员
Array ( [0] => 80 [1] => 120 [2] => 160 [3] => 240 )
实例二:array_pad函数,数组数组首尾选择性追加
代码如下:
$num = array(1=>80,2=>120,3=>160);
$num = array_pad($num,4,200);
echo "使用array_pad函数向数组尾部添加成员
";
print_r($num);
echo "
array_pad 还可以填充数组首部
";
$num = array_pad($num,-8,40);
print_r($num);
?>
运行结果:
使用array_pad函数向数组尾部添加成员
Array ( [0] => 80 [1] => 120 [2] => 160 [3] => 200 )
array_pad 还可以填充数组首部
Array ( [0] => 40 [1] => 40 [2] => 40 [3] => 40 [4] => 80 [5] => 120 [6] => 160 [7] => 200 )
实例三:入栈操作追加(array_push):
代码如下: $num = array(1=>80,2=>120,3=>160);
array_push($num,200,240,280);//可以自己追加,直接加在数组结尾
print_r($num);
?>
运行结果:
Array ( [1] => 80 [2] => 120 [3] => 160 [4] => 200 [5] => 240 [6] => 280 )
实例四:array_unshift()在开头添加数组成员
代码如下:
$num = array(1=>80,2=>120,3=>160);
array_unshift($num,0,40);//可以自己追加,直接加在数组结尾
print_r($num);
?>
运行结果:
Array ( [0] => 0 [1] => 40 [2] => 80 [3] => 120 [4] => 160 )
注意:array_unshift()函数使用后数组的键值将会从0开始!
删减数组成员
实例一:unset()命令删除数组成员或数组:
代码如下: $num = array_fill(0,5,rand(1,10));
print_r($num);
echo "
";
unset($num[4]);
print_r($num);
echo "
";
unset($num);
if(is_array){
echo "unset命令不能删除整个数组";
}else{
echo "unset命令可以删除数组";
}
?>
运行结果:(运行出错及说明数组也被删除,不再存在)
Array ( [0] => 9 [1] => 9 [2] => 9 [3] => 9 [4] => 9 )
Array ( [0] => 9 [1] => 9 [2] => 9 [3] => 9 )
Notice: Use of undefined constant is_array - assumed 'is_array' in H:\wamp\www\testing\editorplus\test.php on line 21
unset命令不能删除整个数组
实例二:array_splice()函数删除数组成员
代码如下:$a=array("red", "green", "blue", "yellow");
count ($a); //得到4
array_splice($a,1,1); //删除第二个元素
count ($a); //得到3
echo $a[2]; //得到yellow
echo $a[1]; //得到blue
?>
实例三:array_unique删除数组中的重复值:
代码如下:
$a=array("red", "green", "blue", "yellow","blue","green");
$result = array_unique($a);
print_r($result);
?>
运行结果:
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
实例四:array_merge、array_merge_recursive合并数组
代码如下: $array1 = array("r"=>"red",1,2,3,4);
$array2 = array("b"=>"blue",4=>5,6,7,8,9);
$array3 = array("r"=>"read",4=>10,2=>11);
$array4 = array(
array(4=>10),
array(7=>13)
);
$array5 = array(
array(4=>11),
array(6=>12)
);
$result = array_merge($array1,$array2,$array3,$array4,$array5);
echo "
"; <br>print_r($result); <br>echo "
$result = array_merge_recursive($array1,$array2,$array3,$array4,$array5);
echo "
"; <br>print_r ($result); <br>echo "
?>
运行结果:
代码如下: Array
(
[r] => read
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[b] => blue
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => Array
(
[4] => 10
)
[12] => Array
(
[7] => 13
)
[13] => Array
(
[4] => 11
)
[14] => Array
(
[6] => 12
)
)
Array
(
[r] => Array
(
[0] => red
[1] => read
)
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[b] => blue
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => Array
(
[4] => 10
)
[12] => Array
(
[7] => 13
)
[13] => Array
(
[4] => 11
)
[14] => Array
(
[6] => 12
)
)
注:1. array_merge的键名是数字的将重新建立索引;遇到相同的字符串键名时,后面的将覆盖前面的。 2. array_merge_recursive函数的作用是将相同字符串的键名单元整合成一个数组。
6. 数组的键值和值操作
实例一:in_array()检测数组中是否有某个值存在
代码如下:
$array = range(0,9);
if(in_array(9,$array)){
echo "数组中存在";
}
?>
运行结果:数组中存在
实例二:key()取得数组当前的键名:
代码如下:
$array = range(0,9);
$num = rand(0,8);
while($num--)
next($array);
$key = key($array);
echo $key;
?>
此实例结果为动态结果,范围(0-8),不做结果演示。
实例三:list()函数把数组中的值赋给指定变量:
代码如下: $staff = array(
array("姓名","性别","年龄"),
array("小张","男",24),
array("小王","女",25),
array("小李","男",23)
);
echo "
$name | $sex | $age |
?>
实例四:array_flip()交换数组的键值和值:
代码如下:
$array = array("red","blue","yellow","Black");
print_r($array);
echo "
";
$array = array_flip($array);
print_r($array);
?>
运行结果:
Array ( [0] => red [1] => blue [2] => yellow [3] => Black )
Array ( [red] => 0 [blue] => 1 [yellow] => 2 [Black] => 3 )
代码如下:
$array = array("red","blue","yellow","Black");
$result = array_keys($array);
print_r($result);
echo "
";
$result = array_values($array);
print_r($result);
?>
运行结果:
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
Array ( [0] => red [1] => blue [2] => yellow [3] => Black )
实例六:array_search()搜索数值:
代码如下:
$array = array("red","blue","yellow","Black");
$result = array_search("red",$array);
if(($result === NULL)){
echo "不存在数值red";
}else{
echo "存在数值 $result";
}
?>
结果:存在数值 0
函数array_search()返回的值可能为false或0或NULL,所以在判断时注意要用"==="
7. 数组的排序
实例一:sort()、rsort()/asort()、arsort()对数组排序:
代码如下:
$array = array("b","c","d","a");
sort($array);//从低到高排序
print_r($array);
echo "
";
rsort($array);//逆向排序
print_r($array);
?>
结果:
Array ( [0] => a [1] => b [2] => c [3] => d )
Array ( [0] => d [1] => c [2] => b [3] => a )
sort()、rsort()函数对数组进行从低到高的排序,返回结果为bool值;
asort()、arsort()函数是保留键值的排序,排序后键值不重新索引。
实例二:将数组顺序打乱——shuffle()函数:
代码如下:
$array = array("a","b","c","d");
shuffle($array);//从低到高排序
print_r($array);
?>
结果为动态结果:
Array ( [0] => c [1] => a [2] => d [3] => b )
shuffle的结果有点随机的意味,每次刷新都不一样。
实例三:array_reverse()数组反向:
代码如下:
$array = array("d","b","a","c");
$array = array_reverse($array);//从低到高排序
print_r($array);
?>
运行结果:
Array ( [0] => c [1] => a [2] => b [3] => d )
实例四:自然排序算法——natsort()和natcasesort();
代码如下:
$array = array("sort2","Sort5","sort1","sort4");
natsort($array);//从低到高排序
print_r($array);
echo "
";
natcasesort($array);
print_r($array);
?>
结果:
Array ( [1] => Sort5 [2] => sort1 [0] => sort2 [3] => sort4 )
Array ( [2] => sort1 [0] => sort2 [3] => sort4 [1] => Sort5 )
natsort()、natcasesort()对数组进行自然排序,就是使用数字的正常排序算法。natcasesort会忽略大小写。
实例五:对数组进行键值排序ksort():
代码如下:
$array = array(1=>"sort2",4=>"Sort5",2=>"sort1",3=>"sort4");
ksort($array);//从低到高排序
print_r($array);
?>
结果:
Array ( [1] => sort2 [2] => sort1 [3] => sort4 [4] => Sort5 )
注意:ksort()函数重新建立了索引。
8. 数组的其他用法
代码如下:
cout($array) --------统计数组的单元个数
array_diff($array1,$array2)----------统计数组之间的不同点,返回第一个数组中有而第二个数组中没有的。
array_diff_assoc($array1,$array2)---------同array_diff(),只是它对键值也比较
array_diff_key($array1,$array2)------------比较键值
array_product($array)-----------返回数组的所有数的乘积
array_sum($array)--------------所有数值的和
array_rand($array,$n)----------在$array数组中取出$n个数值,返回数组
array_intersect($array1,$array2)----------------取得两个数组的交集
array_intersect_assoc($array1,$array2)---------------在array_intersect 的基础上进行键值比较
array_intersect_key($array1,$array2)-----------------比较两个数组键值的交集
总结
数组的使用在PHP中至关重要,由于PHP没有指针,所以数组承担了很大的数据操作任务。学好数组,才能把PHP应用的得心应手,这里所列均是常用的PHP数组相关的函数及用法,欢迎一起学习!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 배열을 사용하여 차트와 통계 그래프를 생성하고 표시하는 방법 PHP는 강력한 데이터 처리 및 그래픽 생성 기능을 갖춘 널리 사용되는 서버측 스크립팅 언어입니다. 웹 개발에서 데이터의 차트와 통계 그래프를 표시해야 하는 경우가 종종 있는데, PHP 배열을 통해 이러한 기능을 쉽게 구현할 수 있습니다. 이 기사에서는 PHP 배열을 사용하여 차트와 통계 그래프를 생성 및 표시하는 방법을 소개하고 관련 코드 예제를 제공합니다. 필요한 라이브러리 파일 및 스타일 시트 소개 시작하기 전에 필요한 라이브러리 파일을 PHP 파일에 도입해야 합니다.

PHP 배열을 사용하여 동적 슬라이드쇼 및 그림 표시를 생성하는 방법 슬라이드쇼 및 그림 표시는 웹 디자인의 일반적인 기능이며 회전판 및 갤러리 표시와 같은 시나리오에서 자주 사용됩니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 데이터를 처리하고 동적 HTML 페이지를 생성하는 기능을 갖추고 있으며 동적 슬라이드쇼 및 그림 표시를 생성하는 데 매우 적합합니다. 이 기사에서는 PHP 배열을 사용하여 동적 슬라이드쇼와 그림 표시를 생성하는 방법을 소개하고 해당 코드 예제를 제공합니다. 이미지 데이터 준비 먼저 이미지 경로 데이터 세트를 준비해야 합니다.

PHP 배열을 사용하여 사용자 로그인 및 권한 관리 기능을 구현하는 방법 웹 사이트를 개발할 때 사용자 로그인 및 권한 관리는 매우 중요한 기능 중 하나입니다. 사용자 로그인을 통해 당사는 사용자를 인증하고 웹사이트의 보안을 보호할 수 있습니다. 권한 관리는 사용자가 승인된 기능에만 액세스할 수 있도록 웹사이트에서 사용자의 운영 권한을 제어할 수 있습니다. 이 기사에서는 PHP 배열을 사용하여 사용자 로그인 및 권한 관리 기능을 구현하는 방법을 소개합니다. 이 프로세스를 보여주기 위해 간단한 예를 사용하겠습니다. 먼저 우리는 생성해야합니다

PHP 배열 평균화 함수는 다음과 같습니다: 1. 배열에 있는 모든 값의 합계를 계산하는 데 사용되는 array_sum(), 평균을 계산하려면 배열에 있는 모든 값을 더한 다음 다음과 같이 나눌 수 있습니다. 배열 요소의 수 2, array_reduce(), 배열을 반복하고 초기 값으로 각 값을 계산하는 데 사용됩니다. 3. 배열의 평균을 반환하는 데 사용되는 array_mean(), 먼저 배열의 합계를 계산합니다. 배열 요소 수를 계산한 다음 합계를 배열 요소 수로 나누어 평균을 구합니다.

PHP 배열은 개발 과정에서 자주 사용되는 매우 일반적인 데이터 구조입니다. 그러나 데이터 양이 증가함에 따라 어레이 성능이 문제가 될 수 있습니다. 이 기사에서는 PHP 배열에 대한 몇 가지 성능 최적화 기술을 살펴보고 구체적인 코드 예제를 제공합니다. 1. 적절한 데이터 구조 사용 PHP에는 일반 배열 외에도 SplFixedArray, SplDoublyLinkedList 등과 같은 다른 데이터 구조가 있는데, 이는 특정 상황에서 일반 배열보다 더 나은 성능을 발휘할 수 있습니다.

PHP 배열을 2차원에서 1차원 배열로 변환하는 방법: 1. 루프 순회를 사용하여 2차원 배열을 탐색하고 각 요소를 1차원 배열에 추가합니다. 2. "array_merge" 함수를 사용하여 여러 항목을 병합합니다. 2차원 배열을 "array_merge" 함수에 매개변수로 전달하여 1차원 배열로 변환합니다. 3. "array_reduce" 함수를 사용하면 배열의 모든 값을 처리할 수 있습니다. 콜백 함수를 통해 최종적으로 결과를 반환합니다.

PHP 배열 키-값 쌍은 키와 해당 값으로 구성된 데이터 구조입니다. 키는 배열 요소의 식별자이고 값은 키와 관련된 데이터입니다. 키-값 쌍을 사용하여 키를 식별자로 사용하여 데이터를 저장하고 액세스할 수 있으므로 배열의 요소를 보다 쉽게 작동하고 관리할 수 있으므로 프로그램 개발이 더욱 유연하고 효율적이 됩니다.

PHP에서 배열을 결정하는 방법에는 여러 가지가 있습니다. 1. 모든 유형의 배열에 적합한 count() 함수를 사용합니다. 그러나 전달된 매개변수가 배열이 아닌 경우 count() 함수는 0을 반환합니다. 2. 다른 프로그래밍 언어와의 호환성을 유지하는 데 더 많이 사용되는 sizeof() 함수를 사용합니다. 함수, 루프를 사용하여 배열을 순회함으로써 순회할 때마다 카운터가 1씩 증가하고 최종적으로 배열의 길이를 얻습니다. 사용자 정의 기능은 실제 필요에 따라 수정 및 확장될 수 있어 더욱 유연해집니다.
