16.取得关联数组的键名
- $province=array("LiaoNing"=>"shenyang","HeiLongJiang"=>"Haerbin","JiLin"=>"Changchun");
- while ($key=key($province)){
- echo $key."<br>";
- next($province);//使用next函数数组索引指针下移一位
- }
- ?>
17.访问数组的键名和元素
- <?php
- $countries_languages
- =array('China'=>'汉语','France'=>'法语','USA'=>'美国英语');
- printf("<p>语言:%s.</p>\n",
- implode(',',array_values($countries_languages)));
- printf("<p>国家:%s.</p>\n",
- implode(',',array_keys($countries_languages)));
- ?>
18.判断数组的类型
- <?php
- function isAssocArray($array){
- //是否为数组
- if(!is_array($array)){
- return false;
- }
- //处理键名
- $keys=array_keys($array);
- $tries=count($keys);
- if ($tries>4){
- $tries=4;
- }
- for ($i=0;$i<$tries;$i++){
- //根据键名是否是数字
- if (!is_int($keys[$i])){
- return true;
- }
- }
- return false;
- }
- //索引数组
- $array_one=array(
- 'http://www.google.cn',
- 'http://www.baidu.com'
- );
- //关联数组
- $array_two=array(
- 'Google'=>'http://www.google.cn',
- 'Baidu'=>'http://www.baidu.com'
- );
- if (isAssocArray($array_one)){
- echo "\$array_one是关联数组<br>";
- }else {
- echo "\$array_one不是关联数组<br>";
- }
- if (isAssocArray($array_two)){
- echo "\$array_two是关联数组<br>";
- }
- ?>
19.显示数组内容与结构
- <?php
- $customers=array(
- array('account'=>'raymond','name'=>'杜江',
- 'age'=>28,'state'=>'中华人民共和国'),
- array('account'=>'lilia','name'=>'琳琳',
- 'age'=>23,'state'=>'中华人民共和国'),
- array('account'=>'guojing','name'=>'郭靖',
- 'age'=>36,'state'=>'宋朝'),
- );
- printf("print_r()函数:<pre>",print_r($customers,TRUE));
- printf("var_export()函数:<pre>%s</pre>",var_export($customers,TRUE));
- print 'var_dump()函数:<pre>';
- var_dump($customers);
- print '</pre>';
- ?>
20.移除数组中的指定元素
- <?php
- $dogs=array('Lassie'=>'Collie','Bud'=>'Sheepdog',
- 'Rin-Tin-Tin'=>'German Shepherd','Snoopy'=>'Beagle');
- printf("<pre>%s</pre>\n",var_export($dogs,TRUE));
- //移除R-Tin-Tin这个数组元素
- unset($dogs['Rin-Tin-Tin']);
- printf("<pre>%s</pre>\n",var_export($dogs,TRUE));
- ?>
21.在数组顶部插入元素
- <?php
- $prices=array(5.95,10.75,11.25);
- echo "原数组内容:<br><pre>";
- print_r($prices);
- echo "<br>";
- //在该数组的顶部增加一个值
- array_unshift($prices, 10.85);
- echo "</pre>使用array_unshift增加了10.85的值:<br></pre>";
- print_r($prices);
- echo "<br>";
- array_unshift($prices, 3.35,17.95);
- echo "</pre>使用array_unshift又增加了3.35,17.95两个值:<br><pre>";
- print_r($prices);
- ?>
22.在数组任意位置插入元素
- <?php
- function array_insert(&$array,$offset,$new){
- array_splice($array, $offset,0,$new);
- }
- $unscl=array('中国','法国','美国','英国');
- printf("<pre>%s</pre>\n",var_export($unscl,TRUE));
- array_insert($unscl, 2, '俄罗斯');
- printf("<pre>%s</pre>\n",var_export($unscl,TRUE));
- ?>
23.数组元素的统计count()函数和sizeof()函数
- <?php
- $dogs=array('Lassie'=>'Collie','Bud'=>'Sheepdog','Rin-Tin-Tin'=>'Alsatian');
- $brids=array('parrot','magpie','lorakeet','cuckoo');
- echo count($dogs)."";
- echo sizeof($brids);
- ?>
24.数组键名与值的对调array_flip()函数
- <?php
- $arry=array(
- 'a'=>1,
- 'b'=>2,
- 'c'=>3
- );
- $flip_array=array_flip($arry);
- print_r($arry);
- ?>
25.对数组元素分组统计array_values()函数
- <?php
- $countries=array('USA'=>'English','Spain'=>'Spanish',
- 'China'=>'Chinese','UK'=>'English',
- 'Mexico'=>'Spanish','Germany'=>'German',
- 'Colombia'=>'Spanish','Canada'=>'English',
- 'Russia'=>'Russian','Austria'=>'German',
- 'France'=>'French','Argentina'=>'Spanish'
- );
- $languages=array_values($countries);
- $language_count=array();
- foreach ($languages as $language){
- if (!isset($language_count[$language])){
- $language_count[$language]=1;
- }else {
- $language_count[$language]++;
- }
- }
- ?>
- <table border="2" cellpadding="5" cellspacing="0" align="center">
- <tr><th>语言</th><th>国家数</th></tr>
- <?php
- foreach ($language_count as $language => $number){
- echo "<tr><td>$language</td><td>$number</td></tr>\n";
- }
- ?><?php
- $countries=array('USA'=>'English','Spain'=>'Spanish',
- 'China'=>'Chinese','UK'=>'English',
- 'Mexico'=>'Spanish','Germany'=>'German',
- 'Colombia'=>'Spanish','Canada'=>'English',
- 'Russia'=>'Russian','Austria'=>'German',
- 'France'=>'French','Argentina'=>'Spanish'
- );
- $languages=array_values($countries);
- $language_count=array();
- foreach ($languages as $language){
- if (!isset($language_count[$language])){
- $language_count[$language]=1;
- }else {
- $language_count[$language]++;
- }
- }
- ?>
- <table border="2" cellpadding="5" cellspacing="0" align="center">
- <tr><th>语言</th><th>国家数</th></tr>
- <?php
- foreach ($language_count as $language => $number){
- echo "<tr><td>$language</td><td>$number</td></tr>\n";
- }
- ?>
26.数组内容过滤
- <?php
- function array_display($array,$pre=FALSE){
- $tag =$pre ? 'pre' : 'p';
- printf("<%s>%s<%s>\n",$tag,var_export($array,TRUE),$tag);
- }
- $arr=array(2,'two',0,'NULL',NULL,'FALSE',FALSE,'empty','');
- $copy=array_filter($arr);
- $reindexed=array_values($copy);
- print '<p>原始数组:</p>';
- array_display($arr,TRUE);
- print '<p>过滤后的数组:</p>';
- array_display($copy,TRUE);
- print '<p>过滤后和重新索引的数组</p>';
- array_display($reindexed,TRUE);
- ?>