主页 > 知识库 > 网络编程 > PHP >

PHP

php数组的遍历讲解 for foreach list each key(2)

来源:中国IT实验室 作者:佚名 发表于:2013-06-23 21:50  点击:
//对索引数组调用key函数对变量赋值 $keyName=key($arrCN); next($arrCN);//将数组指针向后移动一位 next($arrCN); next($arrCN); next($arrCN); next($arrCN); $keyName=key($arrCN); var_dump($keyName);//输出值

 //对索引数组调用key函数对变量赋值  $keyName=key($arrCN);
  next($arrCN);//将数组指针向后移动一位
  next($arrCN);
  next($arrCN);
  next($arrCN);
  next($arrCN);
  $keyName=key($arrCN);
  var_dump($keyName);//输出值和类型类型信息
  //echo $keyName;
  ?>
  注意:key函数的参数一般为关联数组,如果为索引数组那么就没有什么意义了
  key函数不会推进指针移动,这里我们调用了next函数,next函数用来推进指针向后移动,下面就是next函数的介绍
  6.使用对指针进行操作的函数遍历数组
  a reset函数 用于将指针设置回数组的初始位置,如果需要在一个脚本中多次查看和处理一个数组,就可以使用这个函数,另外这个函数还常用于排序的结束
  b.current() 函数
  返回当前当前数组指针位置的值,该函数不对指针进行移动操作,需要注意这个特点
  c end 将指针移到数组的最后位置,返回目标位置的值
  d next 将指针向后移动一次并返回目标位置的数组值,如果当前位置为数组的最后位置,返回false
  e prev 将指针向前移动一次,并返回目标位置的数组值,如果当前位置是数组起始位置,则返回false
  
  //Designed By Androidyue
  //reset方法的使用 注意以下代码调用了控制指针的函数,移动指针的操作会影响到each函数的结果
  //初始化一个数组,为了简写代码,声明一个简单的数组
  $arrGoogle=array('google','Gmail');
  //调用each函数,并且输出返回数组 换行
  echo(current($arrGoogle));//使用current函数,打印出当前的值
  echo (next($arrGoogle));//调用next函数,打印下一个的值
  $arrG=each($arrGoogle);
  print_r($arrG);
  print '
';
  $arrGmail=each($arrGoogle);
  print_r($arrGmail);
  print '
';
  $arrMore=each($arrGoogle);//当指针无法继续移动时返回false
  //print_r($arrMore);
  //echo $arrMore;
  print '
';
  //但是如果想继续输出使用重复上面的过程,那么使用reset函数将指针重置为开始位置,然后重复上面的的操作
  reset($arrGoogle);
  echo(end($arrGoogle));//调用end函数将指针移到数组最后一个位置,并返回值
  echo(prev($arrGoogle));//调用prev函数将指针向前移动,并返回值
  $arrG=each($arrGoogle);
  print_r($arrG);
  print '
';
  $arrGmail=each($arrGoogle);
  print_r($arrGmail);
  print '
';
  ?>
  7.array_reverse()
  该函数是将目标数组元素逆置,如果设置preserver_key为true,则保持原先的映射,否则重置映射
  该函数使用示例代码如下
  
  $arrGoogle=array('Google','Gmail','Android','Chrome','Youtube');
  echo '
';
 
  print '进行操作之前的数组';
  print_r($arrGoogle);
  $arrReversed=array_reverse($arrGoogle);//不保留先前映射
  print '未开启preserve_key 进行逆序操作后的结果';
  print_r($arrReversed);
  $arrReversedT=array_reverse($arrGoogle,1);//保留先前映射
  print '开启preserver_key 进行逆序操作的结果';
  print_r($arrReversedT);
  echo'
';  ?>
  8.array_flip()
  该函数是将数组的键和值互换
  下面是该函数的使用代码
  
  //array_flip()函数的使用
  //初始化一个索引数组
  $arrGoogle=array('Google','Chrome');
  //初始化一个关联数组
  $arrSohu=array('son'=>'Sogou','child'=>'Chinaren','search'=& gt;'Sogou');//如果存在值相同调用array_flip()函数会按照顺序将相同的值覆盖掉,如'son'=>'Sogou'和 'search'=>'Sogou'值相同,使用array_flip()函数后,为[Sogou] => search
  //对两个数组调用array_flip()函数进行操作并输出,都可以正常输出
  print_r(array_flip($arrGoogle));
  print '
$arrSogou未进行array_flip()函数操作之前的数组';
  print_r($arrSohu);
  print '
$arrSogou未进行array_flip()函数操作之后的数组';
  print_r(array_flip($arrSohu));
  ?>
  9.array_walk函数
  boolean array_walk(array input_array,callback function[,mixed userdata])
  array_walk()函数是将参数数组array_input中的每个元素传递给自定义的函数function 中,进行相关的操作,如果想真正修改array_input的键值对则需要将每个键值对作为引用传递给函数
  自定义函数必须接受两个输入参数,第一个是数组的当前值,第二个是数组的当前键,,如果调用array_walk函数给出第三个值userdata,他的第三个值将作为第三个参数传递给自定义函数。
  
  //Designed By Androidyue
  //array_walk函数的使用
  //初始化一个数组
  $arrCorperate=array('移动','联通','电信');
  /*
  功能:一个拼接字符串的函数,将数组中的值和用户输入的参数(如果无参数输入拼接默认参数值)
  参数:$value(自定义),存放数组中的值,$key存放数组中的键,$prefix可选参数,用户需要通过设置array_walk()的第三个参数给它赋值,如果用户无赋值,使用默认,或者根据需要取舍
  注意:如果用户使用了引用传值,那么数组的值要改变
  */
  function linkString(&$value,$key,$prefix='cn'){
  $value=$prefix.$value;//函数体实现字符串拼接
  }
  array_walk($arrCorperate,'linkString');//使用array_walk()对该数组按照自定义函数操作
  //array_walk($arrCorperate,'linkString','中国');//这里传第三个三处对自定义函数设置参数
  print_r($arrCorperate)
  ?>

有帮助
(1)
100%
没帮助
(0)
0%