PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
本文实例总结了PHP数组用法。分享给大家供大家参考,具体如下:
Demo1.php
<?php
//创建一个数组变量
$userNames=array('张三','李四','王五');
//将这个数组打印出来
//echo$userNames;//Array
//$userName='张三';
//echo$userName;//张三
//如果你想打印出这个数组的某一个元素
//那你必须找到这个元素的下标,键(key)
//0,1,2
//echo$userNames[2];//王五
//print_r--打印关于变量的易于理解的信息。
//print_r($userNames);//Array([0]=>张三[1]=>李四[2]=>王五)
//$userNames是一个数组变量,而$userNames[x]可以理解成数组变量下的小变量
$userNames[4]='赵七';
print_r($userNames);//Array([0]=>张三[1]=>李四[2]=>王五[4]=>赵七)
?>
Demo2.php
<?php
//range--建立一个包含指定范围单元的数组
//range包含指定数组
//包含两种东西,一种叫做键(key),一种叫做值(value)
//key是自动生成的,默认从0开始,每次+1
//value是你自己赋值的
//$numbers=range(1,4);
//print_r($numbers);//Array([0]=>1[1]=>2[2]=>3[3]=>4)
//$letters=range('a','e');
//print_r($letters);//Array([0]=>a[1]=>b[2]=>c[3]=>d[4]=>e)
//echo$letters[3];
?>
Demo3.php
<?php
$userNames=array('张三','李四','王五');
//通过循环来显示数组里的所有值
//从0-5之间循环
//for($i=0;$i<3;$i++){
//echo($i+1).'-->'.$userNames[$i].'<br/>';
//}
/*
*1-->张三
*2-->李四
*3-->王五
**/
//echocount($userNames);//3
//for($i=0;$i<count($userNames);$i++){
//echo($i+1).'-->'.$userNames[$i].'<br/>';
//}
//如果key不是从0开始,或者说,压根不是数字,那么就无法用无精打采循环来实现显示数据列表
//通过foreach循环来遍历数组,这方式好处,不需要去考虑key
//foreach($userNamesas$value){
//echo$value.'<br/>';
//}
//foreach遍历$key=>$value
//foreach($userNamesas$keyaaa=>$value){
//echo$keyaaa.'-->'.$value.'<br/>';
//}
/**
*0-->张三
*1-->李四
*2-->王五
**/
//所以,你要先做个判断
if(is_array($userNames)){
foreach($userNamesas$key=>$value){
echo$key.'-->'.$value.'<br/>';
}
}else{
echo$userNames;
}
?>
Demo4.php
<?php
$userNames=array('张三','李四','王五');
print_r($userNames);
echo$userNames[0];
?>
Demo5.php
<?php
//创建自定义键(key)的数组
//如果你不去声明元素的key,那么从开始0计算
//$userNames=array('baidu'=>'张三','李四','王五');
//print_r($userNames);//Array([baidu]=>张三[0]=>李四[1]=>王五)
$userNames=array('baidu'=>'张三','taobao'=>'李四','360'=>'王五');
print_r($userNames);//Array([baidu]=>张三[taobao]=>李四[360]=>王五)
echo$userNames['baidu'];
?>
Demo6.php
<?php
//先创建只一个元素的数组
$userAge=array('chaoyv'=>25);
//打印出chaoyv的年龄
//echo$userAge['chaoyv'];//25
//将以前的数组,追加两条,这里说的下标,键,key是一个东西
$userAge['yike']=30;
$userAge['wife']=24;
print_r($userAge);
?>
Demo7.php
<?php
//array关键字都可以不要,就能创建数组
$userAges['chaoyv']=25;
//print_r($userAges);//Array([chaoyv]=>25)
$userAges['yike']=30;
$userAges['wife']=24;
//print_r($userAges);//Array([chaoyv]=>25[yike]=>30[wife]=>24)
//这里无法使用for循环将数据全部显示出来,只能通过foreach遍历出来
foreach($userAgesas$value){
echo$value.'<br/>';
}
?>
Demo8.php
<?php
//$userAges['chaoyv']=25;
//$userAges['yike']=30;
//$userAges['wife']=24;
$username=array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
//print_r($username);
//each的使用
//each--返回数组中当前的键/值对并将数组指针向前移动一步
//这里有一个指针,默认情况下,指针是指定第一个键值对
//这里的第一个键值对是'世'=>'何开'
//如果each($username),那么获取的就是第一个键值对'世'=>'何开'
//each这个函数返回的是一个数组,
//each将第一个键值对获取到,然后包装成一个新的数组。
//print_r(each($username));
//相当于$a=Array([1]=>何开[value]=>何开[0]=>世[key]=>世)
//$a=each($username);
//echo$a[value];
print_r(each($username));
echo'<br/>';
print_r(each($username));
?>
Demo9.php
<?php
$username=array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
//这里,我们怎么使用each来循环所有的数据呢?
//相当于$a=Array([1]=>何开[value]=>何开[0]=>世[key]=>世)
//两个感叹号,表示真是存在的数据转换成布尔值
//echo!!each($username);//说明有数据,有数据,用布尔值的理念就是真(true)
//echo!!each($username);
//echo!!each($username);
//echo!!each($username);//第四个是假的
while(!!$a=each($username)){
echo$a['key'].'-->'.$a['value'].'<br/>';
}
//$a=each($username);
//echo$a[0].'---'.$a[1].'<br/>';
//$a=each($username);
//echo$a[0].'---'.$a[1].'<br/>';
//$a=each($username);
//echo$a[0].'---'.$a[1].'<br/>';
///**
//*世---何开
//*血---赵血儿
//*学---墨学之
//**/
?>
Demo10.php
<?php
//$usernames=array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
//$a=each($usernames);
////世-->何开
//echo$a['key'];
//echo'-->';
//echo$a['value'];
//$a=each($usernames);
////血-->赵血儿
//echo$a['key'];
//echo'-->';
//echo$a['value'];
////list--把数组中的值赋给一些变量
//$a=array('aaa','bbb','ccc','ddd');
////print_r($a);//Array([0]=>aaa[1]=>bbb[2]=>ccc[3]=>ddd)
//list($var1,$var2,$var3,$var4)=$a;
//echo$var4;
//$usernames=array(0=>'何开','血'=>'赵血儿','学'=>'墨学之');
////list只能认识key为数字的
////自定义的字符串key是无法使用list来识别的
//list($a,$b,$c)=$usernames;
//echo$a;//何开
$usernames=array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
//相当于$a=Array([1]=>何开[value]=>何开[0]=>世[key]=>世)
list($name,$username)=each($usernames);
echo$username;
?>
Demo11.php
<?php
$usernames=array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
$a=each($usernames);
echo$a[key];
$a=each($usernames);
echo$a[key];
//第三次,我想取数组的第一条数组
//只要将数组的指针调整到第一个位置即可
//reset--将数组的内部指针指向第一个单元
reset($usernames);
$a=each($usernames);
echo$a[key];
//世血世
?>
Demo12.php
<?php
//$usernames=array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');
//print_r($usernames);
//echo'<br/>';
////array_unique--移除数组中重复的值
////创建了一个新数组,而新数组呢,已经移除掉了,旧的数组原封不动
//$a=array_unique($usernames);
//print_r($a);
$numbers=array(1,24,2,1,3,4,2,6,4,2,4,56,2,4,5);
print_r($numbers);
$newNumbers=array_unique($numbers);
print_r($newNumbers);
?>
Demo13.php
<?php
$usernames=array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');
print_r($usernames);
echo'<br/>';
//array_flip--交换数组中的键和值
$newUsernames=array_flip($usernames);
print_r($newUsernames);
/**
*Array([世]=>何开[境]=>何开[血]=>赵血儿[学]=>墨学之)
*Array([何开]=>境[赵血儿]=>血[墨学之]=>学)
**/
?>
Demo14.php
<?php
//创建一个单一的数组
$products=array(
array('苹果','6','28.8'),
array('猪肉','2','18.8'),
array('饼干','4','48.8')
);
//print_r($products);
//将$products第一条元素取出来
//print_r($products[2]);
//数组里的数组
echo"|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|<br/>";
echo"|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|<br/>";
echo"|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|<br/>";
?>
Demo15.php
<?php
//创建一个单一的数组
$products=array(
array('苹果','6','28.8'),
array('猪肉','2','18.8'),
array('饼干','4','48.8')
);
//首先要求出外面数组的长度
//echocount($products);
for($i=0;$i<count($products);$i++){
for($j=0;$j<count($products[$i]);$j++){
echo'|'.$products[$i][$j];
}
echo"|<br/>";
}
/*
*|苹果|6|28.8|
*|猪肉|2|18.8|
*|饼干|4|48.8|
***/
?>
Demo16.php
<?php
//创建一个单一的数组
$products=array(
array('产品'=>'苹果','数量'=>'6','价格'=>'28.8'),
array('产品'=>'猪肉','数量'=>'3','价格'=>'25.8'),
array('产品'=>'饼干','数量'=>'2','价格'=>'26.8')
);
//print_r($products);
//for($i=0;$i<count($products);$i++){
//foreach($products[$i]as$key=>$value){
//echo$key.'--'.$value.'|';
//}
//echo'<br/>';
//}
for($i=0;$i<count($products);$i++){
while(!!list($key,$value)=each($products[$i])){
echo$key.'--'.$value.'|';
}
echo'<br/>';
}
/**
*产品--苹果|数量--6|价格--28.8|
*产品--猪肉|数量--3|价格--25.8|
*产品--饼干|数量--2|价格--26.8|
**/
?>
Demo17.php
<?php
////sort--对数组排序
//$fruit=array('banner','orange','apple');
////没有排序前,一般是按照key的顺序进行显示
////print_r($fruit);
////排序之后
//sort($fruit);
//print_r($fruit);
$numbers=array(45,44,27,574,241,7,45,1,5,2,4,5);
print_r($numbers);
rsort($numbers);
echo'<br/>';
print_r($numbers);
//按照数字的话,要看整体的数字的大小,按照字符串的话,只看第一位大小
//$numbers=array(2,12,3);
//sort($numbers,SORT_NUMERIC);
//print_r($numbers);Array([0]=>2[1]=>3[2]=>12)
//$numbers=array(2,12,3);
//sort($numbers,SORT_STRING);
//print_r($numbers);//Array([0]=>12[1]=>2[2]=>3)
?>
Demo18.php
<?php
//asort--对数组进行排序并保持索引关系
$fruit=array('banner','orange','apple');
//sort($fruit);
//print_r($fruit);
//Array([0]=>apple[1]=>banner[2]=>orange)
asort($fruit);
print_r($fruit);
//Array([2]=>apple[0]=>banner[1]=>orange)
?>
Demo19.php
<?php
$fruit=array('b'=>'banner','o'=>'orange','a'=>'apple');
//ksort--对数组按照键名排序
ksort($fruit);
print_r($fruit);
//Array([a]=>apple[b]=>banner[o]=>orange)
?>
Demo20.php
<?php
//echo'<imgsrc="images/mm1.jpg"/>';
//创建一个数组
$pic=array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
//数组进行随机打乱
//shuffle($pic);
//多数组进行反向排序,array打头的函数,一般会创建一个新数组
$a=array_reverse($pic);
for($i=0;$i<3;$i++){
echo'<imgsrc="images/'.$a[$i].'"style="margin:10px;"/>';
echo"\n";
}
?>
Demo21.php
<?php
$userName=array('张三');
print_r($userName);
//这个函数的返回值将得到,目前数组的元素个数
//array_unshift--在数组开头插入一个或多个单元
//在开头插入数据
array_unshift($userName,'李四');
//在结尾插入数据
array_push($userName,'吴者然');
//删除开头的元素
array_shift($userName);
//删除结尾的元素
array_pop($userName);
print_r($userName);
?>
Demo22.php
<?php
$fruit=array('banner','orange','apple');
//这个函数用来获取一个数组中的键(key)
//第二个参数表明随即获取几个
//$a=array_rand($fruit,1);
//echo$fruit[$a];
$a=array_rand($fruit,2);
echo$fruit[$a[0]].''.$fruit[$a[1]];
?>
Demo23.php
<?php
$username=array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
//默认情况下,指针在第一条数据
//获取指针的当前元素,current并没有将指针移到下一步
//echocurrent($username);
//echocurrent($username);
//echocurrent($username);
//echonext($username);
//echocurrent($username);
//echonext($username);
//echocurrent($username);
////reset--将数组的内部指针指向第一个单元
//echoreset($username);
//echosizeof($username);//count
$numbers=array(1,4,5,656,7,5,7,4,7,4,5,7);
//array_count_values--统计数组中所有的值出现的次数
print_r(array_count_values($numbers));
?>
Demo24.php
<?php
$a=$b=$c='';
$fruits=array('a'=>'apple','b'=>'banner','c'=>'orange');
//通过标量函数将字符串键(key)设置成变量,然后将值赋给了这个变量
extract($fruits);
echo$a;
echo$c;
echo$b;
//appleorangebanner
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。