当前位置: 编程技术>php
本页文章导读:
▪php地址引用(php地址引用的效率问题)
代码如下: <?php echo 'begin time:'.$begin=microtime(false).'<br/>';//begin to count time $array=array(); for ($i=1;$i<=10000;$i++) {//产生一个很大的数组 $array[$i]=$i; } /* $arr=$array;//拷贝 拷贝并打印总时间0.02 f.........
▪PHP遍历数组的几种方法
PHP中遍历数组有三种常用的方法: 一、使用for语句循环遍历数组; 二、使用foreach语句遍历数组; 三、联合使用list()、each()和while循环遍历数组。 这三种方法中效率最高的是使用foreach语句.........
▪php遍历数组的方法分享
在PHP中数组分为两类: 数字索引数组和关联数组。 其中数字索引数组和C语言中的数组一样,下标是为0,1,2… 而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。 方法.........
[1]php地址引用(php地址引用的效率问题)
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
echo 'begin time:'.$begin=microtime(false).'<br/>';//begin to count time
$array=array();
for ($i=1;$i<=10000;$i++) {//产生一个很大的数组
$array[$i]=$i;
}
/*
$arr=$array;//拷贝 拷贝并打印总时间0.02
foreach ($arr as $ar) {
echo $ar.'<br/>';
}
*/
/*
$newarr=&$array;//地址引用 时间总是控制在0.01之内 地址引用的优势体现出来了
foreach ($newarr as $r) {
echo $r.'<br/>';
}
*/
foreach ($array as $a) {//基本是0.02 很少是0.01 为什么没有地址引用的快呢?纳闷
echo $a.'<br/>';
}
echo 'end time:'.$end=microtime(false).'<br/>';//end to count time
echo 'total time:'.($end-$begin);
?>
[2]PHP遍历数组的几种方法
来源: 互联网 发布时间: 2013-11-30
PHP中遍历数组有三种常用的方法:
一、使用for语句循环遍历数组;
二、使用foreach语句遍历数组;
三、联合使用list()、each()和while循环遍历数组。
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。
一、使用for语句循环遍历数组
值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组,所以PHP中很少用for语句循环遍历数组。
实例代码如下:
<?php
$arr = array('http://www.','','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'<br />';
}
?>
注释:上例代码中我们先计算出数组$arr中元素的个数,然后才使用在for语句,这样做很高效的。因为如果是for($i=0;$i< count($arr);++$i)的话,每次循环都会计算数组$arr中元素的个数,而使用上面的方式可以减去这种开销。使用++$i也是为了提高效率,前面有文章我们提到过,建议大家再看看。
上面代码的输出结果为:
http://www.
PHP教程
二、使用foreach语句遍历数组
使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下:
第一种方式:
foreach(array_expression as $value){
//循环体
}
实例代码:
<?php
$arr = array('http://www.','','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>
每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。
第二种方式:
foreach(array_expression as $key=>$value){
//循环体
}
实例代码:
<?php
//定义数组
$arr = array('http://www.','','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>
三、联合使用list()、each()和while循环遍历数组
each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。
list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。
实例代码:
<?php
//定义循环的数组
$arr = array('website'=>'http://www.','webname'=>'')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?>
输出结果为:
website=>http://www.
webname=>PHP程序员
总结:上述三种循环遍历数组的方法中建议大家使用foreach语句循环遍历数组,效率更高。
一、使用for语句循环遍历数组;
二、使用foreach语句遍历数组;
三、联合使用list()、each()和while循环遍历数组。
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。
一、使用for语句循环遍历数组
值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组,所以PHP中很少用for语句循环遍历数组。
实例代码如下:
代码如下:
<?php
$arr = array('http://www.','','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'<br />';
}
?>
注释:上例代码中我们先计算出数组$arr中元素的个数,然后才使用在for语句,这样做很高效的。因为如果是for($i=0;$i< count($arr);++$i)的话,每次循环都会计算数组$arr中元素的个数,而使用上面的方式可以减去这种开销。使用++$i也是为了提高效率,前面有文章我们提到过,建议大家再看看。
上面代码的输出结果为:
http://www.
PHP教程
二、使用foreach语句遍历数组
使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下:
第一种方式:
foreach(array_expression as $value){
//循环体
}
实例代码:
代码如下:
<?php
$arr = array('http://www.','','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>
每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。
第二种方式:
foreach(array_expression as $key=>$value){
//循环体
}
实例代码:
代码如下:
<?php
//定义数组
$arr = array('http://www.','','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>
三、联合使用list()、each()和while循环遍历数组
each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。
list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。
实例代码:
代码如下:
<?php
//定义循环的数组
$arr = array('website'=>'http://www.','webname'=>'')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?>
输出结果为:
website=>http://www.
webname=>PHP程序员
总结:上述三种循环遍历数组的方法中建议大家使用foreach语句循环遍历数组,效率更高。
[3]php遍历数组的方法分享
来源: 互联网 发布时间: 2013-11-30
在PHP中数组分为两类: 数字索引数组和关联数组。
其中数字索引数组和C语言中的数组一样,下标是为0,1,2…
而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。
方法1:foreach
<?php
$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not good');
foreach ($sports as $key => $value) {
echo $key.": ".$value."<br />";
}
?>
输出结果:
football: good
swimming: very well
running: not good
方法2:each
<?php
$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not good');
while (!!$elem = each($sports)) {
echo $elem['key'].": ".$elem['value']."<br />";
}
?>
输出结果:
football: good
swimming: very well
running: not good
方法3:list & each
<?php
$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not good');
while (!!list($key, $value) = each($sports)) {
echo $key.": ".$value."<br />";
}
?>
输出结果:
football: good
swimming: very well
running: not good
其中数字索引数组和C语言中的数组一样,下标是为0,1,2…
而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。
方法1:foreach
代码如下:
<?php
$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not good');
foreach ($sports as $key => $value) {
echo $key.": ".$value."<br />";
}
?>
输出结果:
football: good
swimming: very well
running: not good
方法2:each
代码如下:
<?php
$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not good');
while (!!$elem = each($sports)) {
echo $elem['key'].": ".$elem['value']."<br />";
}
?>
输出结果:
football: good
swimming: very well
running: not good
方法3:list & each
代码如下:
<?php
$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not good');
while (!!list($key, $value) = each($sports)) {
echo $key.": ".$value."<br />";
}
?>
输出结果:
football: good
swimming: very well
running: not good
最新技术文章: