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程序设计有所帮助。