php循环遍历数据 php循环函数

php 如何循环遍历出来以下数据?

这个里面是json数据(各级元素包含数组对象等),需要用到json_decode()函数来转化。因为题目给的是图片,没法实际给出代码解答,可以参考我以前对类似问题的解答:网页链接

目前成都创新互联公司已为上1000家的企业提供了网站建设、域名、网页空间、网站改版维护、企业网站设计、岚山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

望采纳,谢谢

PHP 怎么样遍历

第一、foreach()

foreach()是一个用来遍历数组中数据的最简单有效的方法。

?php

$urls= array('aaa','bbb','ccc','ddd');

foreach ($urls as $url){

echo "This Site url is $url! br /";

}

?

显示结果:

This Site url is aaa

This Site url is bbb

This Site url is ccc

This Site url is ddd

第二、while() 和 list(),each()配合使用。

?php

$urls= array('aaa','bbb','ccc','ddd');

while(list($key,$val)= each($urls)) {

echo "This Site url is $val.br /";

}

?

显示结果:

?

This Site url is aaa

This Site url is bbb

This Site url is ccc

This Site url is ddd

第三、for()运用for遍历数组

?php

$urls= array('aaa','bbb','ccc','ddd');

for ($i= 0;$i count($urls); $i++){

$str= $urls[$i];

echo "This Site url is $str.br /";

}

?

显示结果:

This Site url is aaa

This Site url is bbb

This Site url is ccc

This Site url is ddd

这几种遍历数组的方法哪个更快捷些呢,下面做个简单的测试就明白了

=========== 下面来测试三种遍历数组的速度 ===========

一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间。

?php

$arr= array();

for($i= 0; $i 50000; $i++){

$arr[]= $i*rand(1000,9999);

}

function GetRunTime()

{

list($usec,$sec)=explode(" ",microtime());

return ((float)$usec+(float)$sec);

}

######################################

$time_start= GetRunTime();

for($i= 0; $i count($arr); $i++){

$str= $arr[$i];

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo 'Used time of for:'.round($time_used, 7).'(s)br /br /';

unset($str, $time_start, $time_end, $time_used);

######################################

$time_start= GetRunTime();

while(list($key, $val)= each($arr)){

$str= $val;

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo 'Used time of while:'.round($time_used, 7).'(s)br /br /';

unset($str, $key, $val, $time_start, $time_end, $time_used);

######################################

$time_start= GetRunTime();

foreach($arr as$key= $val){

$str= $val;

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo 'Used time of foreach:'.round($time_used, 7).'(s)br /br /';

?

测试结果:

Used time of for:0.0228429(s)

Used time of while:0.0544658(s)

Used time of foreach:0.0085628(s)

结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。从原理上来看,foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原因应该是,foreach是PHP内部实现,而while是通用的循环结构。所以,在通常应用中foreach简单,而且效率高。在PHP5下,foreach还可以遍历类的属性。

希望能够喜欢。

php中的数组遍历的几种方式

?php//使用for循环遍历$arr2=array(array("张三","20","男"),array("李四","25","男"),array("王五","19","女"),array("赵六","25","女"));echo "table border=2 bordercolor=redtrtd姓名/tdtd年龄/td gt;td性别/td/tr";for($i=0;$i4;$i++){echo "tr";for($j=0;$j3;$j++){ echo "td"; echo $arr2[$i][$j]; echo "/td";}echo "/tr";echo "";}echo "/table";?//使用foreach遍历 ?php$arr = array('one'=array('name'='张三','age'='23','sex'='男'), 'two'=array('name'='李四','age'='43','sex'='女'), 'three'=array('name'='王五','age'='32','sex'='男'), 'four'=array('name'='赵六','age'='12','sex'='女'));foreach($arr as $k=$val){ echo $val['name'].$val['age'].$val['sex']."";}echo "p";??php$arr = array('one'=array('name'='张三','age'='23','sex'='男'), 'two'=array('name'='李四','age'='43','sex'='女'), 'three'=array('name'='王五','age'='32','sex'='男'), 'four'=array('name'='赵六','age'='12','sex'='女'));foreach($arr as $key=$value){foreach($value as $key2=$value2){ echo $value2;}echo "";}?

php中如何用for循环遍历数组中的元素?只是想用for循环哦

echo

get_all($arr);

function

get_all($arr){

$count

=

count($arr);

for($i=0;$i$count;$i++){

if(is_array($arr[$i])){//判断是否为数组

get_all($arr[$i]);

}else{

echo

$arr[$i];

}

}

}

这种的通常都用递归迭代出来,仅供参考,希望能帮到你~

php中这样的数组怎么遍历

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法PHP中遍历数组有三种常用的方法:

一、使用for语句循环遍历数组;

二、使用foreach语句遍历数组;

三、联合使用list()、each()和while循环遍历数组。

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。

一、使用for语句循环遍历数组

值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组,所以PHP中很少用for语句循环遍历数组。

实例代码如下:

代码如下:

?php

$arr =

array('','脚本之家','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也是为了提高效率,前面有文章我们提到过,建议大家再看看。

上面代码的输出结果为:

脚本之家

PHP教程

二、使用foreach语句遍历数组

使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下:

第一种方式:

foreach(array_expression as $value){

//循环体

}

实例代码:

代码如下:

?php

$arr =

array('','脚本之家','PHP教程');

foreach($arr as $value){

echo $value.'br /';

}

?

每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。

第二种方式:

foreach(array_expression as

$key=$value){

//循环体

}

实例代码:

代码如下:

?php

//定义数组

$arr =

array('','脚本之家','PHP教程');

foreach($arr as $k=$v){

echo $k."=".$v."br /";

}

?

三、联合使用list()、each()和while循环遍历数组

each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。

list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。

实例代码:

代码如下:

?php

//定义循环的数组

$arr =

array('website'='','webname'='脚本之家')

while(list($k,$v) = each($arr)){

echo $k.'='.$v.'br /';

}

? jb51.net

php 循环遍历文件夹下面的所有目录及文件并且每个文件都写入一句话

/****************************

* 获取目录下的所有文件

* [$dir] 文件夹路径

****************************/

function deepScanDir($dir) {

$fileArr = array ();

$dirArr = array ();

$dir = rtrim($dir, '//');

if (is_dir($dir)) {

$dirHandle = opendir($dir);

while (false !== ($fileName = readdir($dirHandle))) {

$subFile = $dir . DIRECTORY_SEPARATOR . $fileName;

if (is_file($subFile)) {

$fileArr[] = $subFile;

}

elseif (is_dir($subFile)  str_replace('.', '', $fileName) != '') {

$dirArr[] = $subFile;

$arr = deepScanDir($subFile);

$dirArr = array_merge($dirArr, $arr['dir']);

$fileArr = array_merge($fileArr, $arr['file']);

}

}

closedir($dirHandle);

}

return array (

'dir' = $dirArr,

'file' = $fileArr

);

}

/****************************

* 将内容写入文件

* [$filename] 文件路径

* [$contents]  文件内容

* [$type]     读写类型

****************************/

function writeFileContents($filename, $contents, $type='a') {

if (!($fd = fopen($filename, $type)))

return FALSE;

if (!fwrite($fd, $contents."\n")) {

fclose($fd);

return FALSE;

}

fclose($fd);

return true;

}

#示例:

$dir = "/usr/local/php/test/";

$dirFiles = deepScanDir($dir);

if(!empty($dirFiles['file'])){

foreach($dirFiles['file'] as $file){

writeFileContents($file, "Hello", $type='a+');

}

}


分享题目:php循环遍历数据 php循环函数
转载注明:http://scyanting.com/article/doscosi.html