PHP專題-PHP數組(續)

16.取得關聯數組的鍵名

  1. $province=array("LiaoNing"=>"shenyang","HeiLongJiang"=>"Haerbin","JiLin"=>"Changchun"); 
  2. while ($key=key($province)){ 
  3.     echo $key."<br>"
  4.     next($province);//使用next函數數組索引指針下移一位 
  5. ?> 


17.訪問數組的鍵名和元素

  1. <?php 
  2. $countries_languages 
  3. =array('China'=>'漢語','France'=>'法語','USA'=>'美國英語'); 
  4. printf("<p>語言:%s.</p>\n"
  5.       implode(',',array_values($countries_languages))); 
  6. printf("<p>國家:%s.</p>\n"
  7.       implode(',',array_keys($countries_languages))); 
  8. ?> 


18.判斷數組的類型

  1. <?php 
  2. function isAssocArray($array){ 
  3.     //是否爲數組 
  4.     if(!is_array($array)){ 
  5.         return false; 
  6.     } 
  7.     //處理鍵名 
  8.     $keys=array_keys($array); 
  9.     $tries=count($keys); 
  10.     if ($tries>4){ 
  11.         $tries=4; 
  12.     } 
  13. for ($i=0;$i<$tries;$i++){ 
  14.     //根據鍵名是否是數字 
  15.     if (!is_int($keys[$i])){ 
  16.         return true; 
  17.     } 
  18.    return false; 
  19. //索引數組 
  20. $array_one=array
  21.     'http://www.google.cn'
  22.     'http://www.baidu.com' 
  23. ); 
  24. //關聯數組 
  25. $array_two=array
  26.     'Google'=>'http://www.google.cn'
  27.     'Baidu'=>'http://www.baidu.com' 
  28. ); 
  29. if (isAssocArray($array_one)){ 
  30.     echo "\$array_one是關聯數組<br>"
  31. }else { 
  32.     echo "\$array_one不是關聯數組<br>"
  33. if (isAssocArray($array_two)){ 
  34.     echo "\$array_two是關聯數組<br>"
  35. ?> 


19.顯示數組內容與結構

  1. <?php 
  2. $customers=array
  3.         array('account'=>'raymond','name'=>'杜江'
  4.         'age'=>28,'state'=>'中華人民共和國'), 
  5.         array('account'=>'lilia','name'=>'琳琳'
  6.         'age'=>23,'state'=>'中華人民共和國'), 
  7.         array('account'=>'guojing','name'=>'郭靖'
  8.         'age'=>36,'state'=>'宋朝'),    
  9.     ); 
  10.  printf("print_r()函數:<pre>",print_r($customers,TRUE)); 
  11.  printf("var_export()函數:<pre>%s</pre>",var_export($customers,TRUE)); 
  12.  print 'var_dump()函數:<pre>'
  13.  var_dump($customers); 
  14.  print '</pre>'
  15. ?> 


20.移除數組中的指定元素

  1. <?php 
  2. $dogs=array('Lassie'=>'Collie','Bud'=>'Sheepdog'
  3.             'Rin-Tin-Tin'=>'German Shepherd','Snoopy'=>'Beagle'); 
  4. printf("<pre>%s</pre>\n",var_export($dogs,TRUE)); 
  5. //移除R-Tin-Tin這個數組元素 
  6. unset($dogs['Rin-Tin-Tin']); 
  7. printf("<pre>%s</pre>\n",var_export($dogs,TRUE)); 
  8. ?> 


21.在數組頂部插入元素

  1. <?php 
  2. $prices=array(5.95,10.75,11.25); 
  3. echo "原數組內容:<br><pre>"
  4. print_r($prices); 
  5. echo "<br>"
  6. //在該數組的頂部增加一個值 
  7. array_unshift($prices, 10.85); 
  8. echo "</pre>使用array_unshift增加了10.85的值:<br></pre>"
  9. print_r($prices); 
  10. echo "<br>"
  11. array_unshift($prices, 3.35,17.95); 
  12. echo "</pre>使用array_unshift又增加了3.35,17.95兩個值:<br><pre>"
  13. print_r($prices); 
  14. ?> 


22.在數組任意位置插入元素

  1. <?php 
  2. function array_insert(&$array,$offset,$new){ 
  3.     array_splice($array$offset,0,$new); 
  4. $unscl=array('中國','法國','美國','英國'); 
  5. printf("<pre>%s</pre>\n",var_export($unscl,TRUE)); 
  6. array_insert($unscl, 2, '俄羅斯'); 
  7. printf("<pre>%s</pre>\n",var_export($unscl,TRUE)); 
  8. ?> 


23.數組元素的統計count()函數和sizeof()函數

  1. <?php 
  2. $dogs=array('Lassie'=>'Collie','Bud'=>'Sheepdog','Rin-Tin-Tin'=>'Alsatian'); 
  3. $brids=array('parrot','magpie','lorakeet','cuckoo'); 
  4. echo count($dogs).""
  5. echo sizeof($brids); 
  6. ?> 


24.數組鍵名與值的對調array_flip()函數

  1. <?php 
  2. $arry=array
  3.     'a'=>1, 
  4.     'b'=>2, 
  5.     'c'=>3 
  6. ); 
  7. $flip_array=array_flip($arry); 
  8. print_r($arry); 
  9. ?> 


25.對數組元素分組統計array_values()函數

  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_values($countries); 
  10. $language_count=array(); 
  11. foreach ($languages as $language){ 
  12.     if (!isset($language_count[$language])){ 
  13.         $language_count[$language]=1; 
  14.     }else { 
  15.         $language_count[$language]++; 
  16.     } 
  17.     
  18. ?> 
  19. <table border="2" cellpadding="5" cellspacing="0" align="center"
  20. <tr><th>語言</th><th>國家數</th></tr> 
  21. <?php 
  22. foreach ($language_count as $language => $number){ 
  23.     echo "<tr><td>$language</td><td>$number</td></tr>\n"
  24. ?><?php 
  25. $countries=array('USA'=>'English','Spain'=>'Spanish'
  26.             'China'=>'Chinese','UK'=>'English'
  27.             'Mexico'=>'Spanish','Germany'=>'German'
  28.             'Colombia'=>'Spanish','Canada'=>'English'
  29.             'Russia'=>'Russian','Austria'=>'German'
  30.             'France'=>'French','Argentina'=>'Spanish'    
  31. ); 
  32. $languages=array_values($countries); 
  33. $language_count=array(); 
  34. foreach ($languages as $language){ 
  35.     if (!isset($language_count[$language])){ 
  36.         $language_count[$language]=1; 
  37.     }else { 
  38.         $language_count[$language]++; 
  39.     } 
  40.     
  41. ?> 
  42. <table border="2" cellpadding="5" cellspacing="0" align="center"
  43. <tr><th>語言</th><th>國家數</th></tr> 
  44. <?php 
  45. foreach ($language_count as $language => $number){ 
  46.     echo "<tr><td>$language</td><td>$number</td></tr>\n"
  47. ?> 


26.數組內容過濾

  1. <?php 
  2. function array_display($array,$pre=FALSE){ 
  3.     $tag =$pre ? 'pre' : 'p'
  4.     printf("<%s>%s<%s>\n",$tag,var_export($array,TRUE),$tag); 
  5. $arr=array(2,'two',0,'NULL',NULL,'FALSE',FALSE,'empty',''); 
  6. $copy=array_filter($arr); 
  7. $reindexed=array_values($copy); 
  8. print '<p>原始數組:</p>'
  9. array_display($arr,TRUE); 
  10. print '<p>過濾後的數組:</p>'
  11. array_display($copy,TRUE); 
  12. print '<p>過濾後和重新索引的數組</p>'
  13. array_display($reindexed,TRUE); 
  14. ?> 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章