当前位置:  编程技术>php
本页文章导读:
    ▪php数组遍历方法详解(for foreach list each key)      1,for循环遍历数组 在php语言中for循环不是遍历数组的首选。 先来看一个例子:   代码示例: <?php //for 循环遍历数组 //声明一个数组并且初始化 $array=array('Google','Chrome','Android','Youtube','G.........
    ▪php多数组同时遍历的代码示例      问题描述: 后台处理前台提交的表单数组,三个数组同时需要遍历组成新数组,具体如下: 例如:   代码示例: $array1 => array("001","002","003");  //城市编号 $array2 => array("北京","上海",".........
    ▪php数组排序之krsort与asort函数应用举例      1,krsort()定义和用法 krsort() 函数将数组按照键逆向排序,为数组值保留原来的键。 可选的第二个参数包含附加的排序标志。 若成功,则返回 TRUE,否则返回 FALSE。 语法 krsort(array,sorttype) .........

[1]php数组遍历方法详解(for foreach list each key)
    来源: 互联网  发布时间: 2013-12-24

1,for循环遍历数组
在php语言中for循环不是遍历数组的首选。

先来看一个例子:
 

代码示例:

<?php
//for 循环遍历数组
//声明一个数组并且初始化
$array=array('Google','Chrome','Android','Youtube','Gmail');

//使用for循环遍历各数组元素,count()用来计算数组的长度
for($i=0;$i<count($array);$i++){
//打印数组的元素的值
echo $array[$i],"<br>";
}
?>

注意:使用for遍历数组存在以下限制:
a  所遍历的数组必须是索引数组(即下标为数字的数组),不能是关联数组(下标为字符串的数组)

例如:
 

代码示例:
<?php
$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
for($i=1;$i<=count($arrGoogle);$i++){
echo $arrGoogle[$i];
}
?>

在运行时会报错,类似于这样的错误Notice: Undefined offset: 1 in D:/phpnow/htdocs/holiday/php_array_visit_summary.php on line 13这说明for不适合用于关联数组的遍历

b,for遍历的数组既要满足是索引数组,同时下标又要是连续的整数,如果不是连续的整数则会发生提示
例如:
 

代码示例:

<?php
$array=array(1=>'Google',5=>'Chrome',7=>'Android',9=>'Youtube',12=>'Gmail');
//print_r($array);

for($i=0;$i<count($array);$i++){
echo $array[$i],"<br>";
}
?>

这种情况下也会发生提示类似于Notice: Undefined offset: 2 in D:/phpnow/htdocs/holiday/php_array_visit_summary.php on line 10 因此for循环遍历数组必须是索引数组而且下标必须是连续的。

2,foreach遍历数组
foreach遍历方法是php遍历数组的首选。
foreach遍历:
foreach($array as $key=>$value)包含键值元素,也可以是foreach($array as $value)只包含值:foreach($array as $value)

例如:
 

代码示例:

<?php
//foreach实现遍历数组
$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');

//只包含值
foreach($arrGoogle as $value){
echo $value.'<br>';
}
?>

foreach($array as $key=>$value)的例子:
 

代码示例:
<?php
$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
foreach($arrGoogle as $key=>$value){
echo '第',($key+1),'个数组元素的值是',$value,'<br>';
}
?>
 

注意:
$value和$key都是自定义的变量,可以根据需要更改成符合自己风格的命名方式。

3,使用list函数遍历数组
list()函数是将数组中的值赋给变量。
标准语法:void list ( mixed varname, mixed ... )
用list实现对数组的遍历代码
 

代码示例:
<?php
//使用list遍历函数
//$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');//使用关联数组不行
$arrGoogle=array('google','Gmail','Chrome','Android');
list($brand,$email,$webBrowser,$phone)=$arrGoogle;
echo $brand,$email,$webBrowser,$phone;
?>

注意:
a  list函数所接受的数组只能是索引数组,不能是关联数组!如果是关联数组,则会出现类似 Notice Undefined offset提示
b  如果只是部分取出数组的值,只需 按照这样的写法即可,list(,,$chrome,)=$arrGoogle;这样我们就可以去除chrome的信息,但是注意一定要保证list参数与数组的元素个数相同(所取值前面的个数)
c list函数赋值按索引顺序赋值

4,each函数遍历数组
each函数返回输入数组的键值对。
标准语法:array each(array input array)
返回值:返回4个值0,1,key,value;其中0和key包含键名,而1和value包含相应的数据
使用each遍历数组的例子:
 

代码示例:

<?php
//使用each函数遍历数组
$arrGoogle=array('google','Gmail','Chrome','Android');

//第一次使用each取得当前键值对,并且将指针移到下一个位置
$arrG=each($arrGoogle);

//打印结果,并且换行以清晰显示结果
print_r($arrG);
print '<br>';
$arrGmail=each($arrGoogle);
print_r($arrGmail);
print '<br>';
$arrChrome=each($arrGoogle);

print_r($arrChrome);
print '<br>';
$arrAndroid=each($arrGoogle);
print_r($arrAndroid);
print '<br>';

//当指针位于数组末尾再次执行函数each,如果是这样再次执行结果返回false
$empty=each($arrGoogle);

//如果指针无法继续后移返回false
if($empty==false){
print '指针以位于数组末尾,无法在向后移,故返回false';
}
?>

注意:
该函数的参数和返回值(在执行该函数前指针不位于数组末尾时)都为数组,在执行函数前数组指针位于数组末尾时再次执行该函数返回值为false
开始的位置是第一个元素,每(正常)执行一次该函数,指针向后移到下一个地址。

5,key()遍历数组
each是用来返回数组的键名。
基本语法:mixed key ( array &array )
key函数遍历数组的例子:
 

代码示例:

<?php
//Designed By Androidyue
//使用key函数遍历数组
//初始化一个关联数组
$arrChina=array('a'=>'Hebei','b'=>'Anhui','c'=>'Beijing','d'=>'Guangdong','e'=>'Shanghai');

//初始化一个索引数组   但是索引数组使用key返回的是空字符产
$arrCN=array('Hebei','Anhui','Beijing','Guangdong','Shanghai');//key显示的是数组的字符串下标,如果为索引数组则为空字符串
//print_r($arrChina);
while($key=key($arrChina)){//对于关联数组使用key方法可以执行
echo $key,'<br>';
next($arrChina);
}
print_r($arrCN);//输出一下索引数组
while($keyName=key($arrCN)){//这里调用key函数赋值后为false,while条件不成立,不进行{}之间的操作
var_dump($keyName);
}

//验证对索引数组使用key函数的返回值赋值给变量这个表达式的布尔值
if(($KeyName=key($arrCN))==false){
print 'False';
}

//对索引数组调用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函数的介绍。


    
[2]php多数组同时遍历的代码示例
    来源: 互联网  发布时间: 2013-12-24

问题描述:
后台处理前台提交的表单数组,三个数组同时需要遍历组成新数组,具体如下:
例如:
 

代码示例:
$array1 => array("001","002","003");  //城市编号
$array2 => array("北京","上海","深圳");
$array3 => array("24","27","27");//气温

使用以下方法组合新数组:
 

代码示例:
foreach($array1 as $value1)
{
   $value2 = current($array2);
   $value3 = current($array3);
   $newarray[] = array("$value1","$value2","$value3");
   next($array2); 
   next($array3); //www.
}
 

得到新数组:
 

代码示例:
$newarray = array(
   array("001","北京","24"),array("002","上海","27"),array("003","深圳","27")
);

代码简单了点,仅供初学php数组遍历或组合的朋友参考。


    
[3]php数组排序之krsort与asort函数应用举例
    来源: 互联网  发布时间: 2013-12-24

1,krsort()定义和用法
krsort() 函数将数组按照键逆向排序,为数组值保留原来的键。
可选的第二个参数包含附加的排序标志。

若成功,则返回 TRUE,否则返回 FALSE。
语法
krsort(array,sorttype)

参数 描述
array  必需。规定要排序的数组。
sorttype  

可选。规定如何排列数组的值。可能的值:
   

SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
    SORT_NUMERIC - 把值作为数字来处理
    SORT_STRING - 把值作为字符串来处理
    SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置*。

*:该值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。
例子
 

代码示例:
<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
krsort($my_array);
print_r($my_array);
?>

输出:
 

Array
(
[c] => Horse
[b] => Cat
[a] => Dog
)

2,asort() 定义和用法
asort() 函数对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。
可选的第二个参数包含了附加的排序标识。

如果成功则返回 TRUE,否则返回 FALSE。
语法
asort(array,sorttype)

参数 描述
array  必需。输入的数组。
sorttype  

可选。规定如何排列数组的值。可能的值:
  

  SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
    SORT_NUMERIC - 把值作为数字来处理
    SORT_STRING - 把值作为字符串来处理
    SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置*。

*:该值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。
例子
 

代码示例:

<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");

asort($my_array);
print_r($my_array);
?>

输出:
 

Array
(
[b] => Cat
[a] => Dog
[c] => Horse
)

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3