PHP专题-PHP数组

admin2024-08-22  12

PHP数组
数组的类型

1.数字索引数组
PHP数字索引组默认索引值是从数字0开始的,并不需要特别指定,PHP会知道为索引的键名赋一个值,然后从这个值开始自动增量

  1. <?php 
  2. $name=array("raymond","lilila","tony"); 
  3. echo "{$name[0]}和{$name[1]}和{$name[2]}"
  4. ?> 


2.关联数组
关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能为数字,在一个数组中,只要键名中有1个不是数字,那么这个数组就叫做关联数组

  1. <?php 
  2. //创建一个关联数组$newArray 
  3. $newArray=array("first"=>1,"2"=>"第二个元素的值","third"=>3); 
  4. //修改third的值 
  5. $newArray["third"]=5; 
  6. echo $newArray["third"]; 
  7. ?> 


数组的构造
1.一维数组

  1. <?php 
  2. $info[0]='A'
  3. $info[1]='B'
  4. $info['abc']='C'
  5. echo $info[0].$info[1].$info["abc"]; 
  6. ?> 


2.二维数组与多维数组

  1. <?php 
  2. $company=array
  3.         array('CompanyID'=>'1001'
  4.               'Companyname'=>'Ganji.com'
  5.               'Address'=>'北京清华科技园' 
  6.         ), 
  7.         array('CompanyID'=>'1002'
  8.               'Companyname'=>'Ganji.com'
  9.               'Address'=>'北京清华科技园' 
  10.         ), 
  11.         array('CompanyID'=>'1003'
  12.               'Companyname'=>'Ganji.com'
  13.               'Address'=>'北京清华科技园' 
  14.         )    
  15.         ); 
  16. print_r($company); 
  17. ?> 


3.快速创建数组
使用range()函数

  1. <?php 
  2. $testArray=range(0,6); 
  3. print_r($testArray); 
  4. ?> 
  5. ============= 
  6. <?php 
  7. $even=range(0,10,3);//其中3表示递增的步长 
  8. print_r($even); 
  9. ?> 


4.为数组追加数据

  1. <?php 
  2. //建立一个新的空数组,將一个变量指定为数组类型 
  3. $languages=array(); 
  4. //增加3个元素 
  5. $languages[]='汉语'
  6. $languages[]='法语'
  7. $languages[]='英语'
  8. printf("<p>语言:%s.</p>\n",implode(',',$languages)); 
  9. ?> 


5.修改数组内容

  1. <?php 
  2. //建立一个新的空数组,將一个变量指定为数组类型 
  3. $languages=array(); 
  4. //增加3个元素 
  5. $languages[]='汉语'
  6. $languages[]='法语'
  7. $languages[]='英语'
  8. printf("<p>语言:%s.</p>\n",implode(',',$languages)); 
  9. $languages[2]='东北话'
  10. printf("<p>语言:%s.</p>\n",implode(',',$languages)); 
  11. ?> 


6.数字索引数组排序

  1. <?php 
  2. $states=array("中国","China","香港","Hongkong"); 
  3. sort($states); 
  4. print_r($states); 
  5. ?> 


7.关联数组排序

  1. <?php 
  2. $states=array("LN"=>"LiaoNing","BJ"=>"BeiJing","SH"=>"ShangHai"); 
  3. echo 'asort():按数组关联性排序:<br>'
  4. asort($states); 
  5. print_r($states); 
  6. echo 'krsort():按数组的索引值降序排序:<br>'
  7. ksort($states); 
  8. print_r($states); 
  9. ?> 


8.数组随机抽取shuffle()和array_rand()

  1. <?php 
  2. $cards=array("1","2","3","4","5","6"); 
  3. //把$cards数组打乱 
  4. shuffle($cards); 
  5. print_r($cards); 
  6. ?> 
  7. ---------------- 
  8. <?php 
  9. $arry=array('A','B','C','D'); 
  10. $result=array_rand($arry); 
  11. //显示$array中随机产生的索引值元素 
  12. echo $arry[$result]; 
  13. ?> 


9.统计数组元素出现的次数
array_count_values()

  1. <?php 
  2. $province=array("Shanghai","Liaoning","Guangdong","Liaoning","Beijing"); 
  3. $provinceFrequency=array_count_values($province); 
  4. print_r($provinceFrequency); 
  5. ?> 


10.数据合并array_merge

  1. <?php 
  2. $array_a=array
  3.     1=>'新浪网'
  4.     2=>'搜狐网'
  5.     3=>'网易'
  6.     4=>'新华网' 
  7. ); 
  8. $array_b=array
  9.     '82'=>'优酷网'
  10.     85=>'新华网'
  11.     87=>'六间房'
  12.     90=>'土豆网' 
  13. ); 
  14. //两个数组的简单合并可以使用加号(+)操作符直接合并,如: 
  15. $array_c=$array_a+$array_b
  16. print_r($array_c); 
  17. $array_d=array_merge($array_a,$array_b); 
  18. print_r($array_d); 
  19. ?> 


11.查找数组中键名是否存在

  1. <?php 
  2. $state["LN"]="沈阳"
  3. $state["BJ"]="北京"
  4. $state["SH"]="上海"
  5. if (array_key_exists("LN"$state)){ 
  6.     echo "辽宁省的省会在$state[LN]"
  7. ?> 


12.查找数组值是否存在

  1. <?php 
  2. $grades=array(100.94,7,67,89,100); 
  3. if (in_array("100"$grades)){ 
  4.     echo "有的同学考试成绩达到了满分"
  5. ?> 


13.计算数组中数值元素的和

  1. <?php 
  2.  $grades=array(42,"hello",42); 
  3.  $total=array_sum($grades); 
  4.  print $total
  5. ?> 


14.去除数组中重复的元素值

  1. <?php 
  2. $countries=array('USA'=>'English','Spain'=>'Spanish'
  3.                 'China'=>'Chinese','UK'=>'English'
  4.                 'Mexico'=>'Spanish','Germany'=>'German'
  5.                 'Colombia'=>'Spanish','Canada'=>'English'
  6.                 'Russia'=>'Russian','Austria'=>'German'
  7.                 'France'=>'French','Argentina'=>'Spanish'); 
  8. //清理重复的数组元素 
  9. $languages=array_unique($countries); 
  10. printf("<pre>%s</pre>\n",var_export($languages,TRUE)); 
  11. //按索引值显示移除元素的数 
  12. $languages=array_unique(array_values($countries)); 
  13. printf("<pre>%s</pre>\n",var_export($languages,TRUE)); 
  14. //重新索引排序 
  15. $languages=array_unique(array_values($countries)); 
  16. printf("<pre>%s</pre>\n",var_export($languages,TRUE)); 
  17. ?> 


15.移动数组内部指针

  1. <?php 
  2. //候选的一堆数字索引数组,它保存了以下3列值 
  3. $fruits=array("apple","orange","banana"); 
  4. print_r($fruits); 
  5. $fruit=current($fruits); 
  6. echo "当前的水果:$fruit<br>"
  7. $fruit=next($fruits); 
  8. echo "下一个水果:$fruit<br>"
  9. $fruit=prev($fruits); 
  10. echo "上一个水果:$fruit<br>"
  11. $fruit=current($fruits); 
  12. echo "当前的水果:$fruit<br>"
  13. $fruit=end($fruits); 
  14. echo "最后面的水果:$fruit<br>"
  15. ?> 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!