首页 > 语言 > PHP > 正文

PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

2024-05-04 23:49:39
字体:
来源:转载
供稿:网友

本文实例总结了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-->王五   * */// echo count($userNames); //3// for($i=0;$i<count($userNames);$i++){//   echo ($i+1).'-->'.$userNames[$i].'<br/>';// }  //如果 key 不是从 0 开始,或者说,压根不是数字,那么就无法用无精打采循环来实现显示数据列表  //通过 foreach 循环来遍历数组,这方式好处,不需要去考虑 key// foreach ($userNames as $value){//   echo $value.'<br/>';// }  //foreach 遍历 $key => $value// foreach ($userNames as $keyaaa => $value){//   echo $keyaaa.'-->'.$value.'<br/>';// }  /**   * 0-->张三   * 1-->李四   * 2-->王五   * */  //所以,你要先做个判断  if(is_array($userNames)){    foreach ($userNames as $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 ($userAges as $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')  );  //首先要求出外面数组的长度  //echo count($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 '<img src="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 '<img src="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 并没有将指针移到下一步// echo current($username);// echo current($username);// echo current($username);// echo next($username);// echo current($username);// echo next($username);// echo current($username);// //reset -- 将数组的内部指针指向第一个单元// echo reset($username);// echo sizeof($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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选