php键值数据遍历 phpforeach遍历数组

php如何把数据库中的值遍历输出到select option中比如一张表中有2个字段,id和name,现在你把这张表中的所有的值都取出来放在一个二维数组$arr中了,那么现在来遍历这个$arr数组
echo "select name=''";
foreach($arr as $key=$vo){
echo "option value=https://www.04ip.com/post/$vo['id']$vo['name']/option";
}
echo "/select";
遍历就是这样了,当然我是用echo 输出的了,记得要写在一对select/select的里面
PHP 数组遍历方法大全(foreach,list,each)在PHP中数组分为两类:
数字索引数组和关联数组 。
其中数字索引数组和C语言中的数组一样,下标是为0,1,2…
而关联数组下标可能是任意类型 , 与其它语言中的hash,map等结构相似 。
下面介绍PHP中遍历关联数组的三种方法:
方法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
/";
?
方法3:list
each
复制代码
代码如下:
?php
$sports
=
array(
'football'
=
'good',
'swimming'
=
'very
well',
'running'
=
'not
good');
while
(list($key,
$value)
=
each($sports))
{
echo
$key.":
".$value."br
/";
?
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);
}
【php键值数据遍历 phpforeach遍历数组】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中这样的数组怎么遍历这三种方法中效率最高的是使用foreach语句遍历数组 。从PHP4开始就引入php键值数据遍历了foreach结构php键值数据遍历,是PHP中专门为遍历数组而设计的语句php键值数据遍历,推荐大家使用 。先分别介绍这几种方法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 /';
}
?
注释:上例代码中php键值数据遍历我们先计算出数组$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遍历键值对数组可以遍历两次$a, 第一次取出所有的父级栏目,放入$newarr中 , 第二次将子栏目放入对应
的父级栏目数组中, 最后使用$newarr就行
不过这是建立在只有二级栏目的基础上,如果有三级栏目的话就还要麻烦些了
$newarr = array();
foreach ($a as $key = $value)
{
if($value['fID'] == 0)
{
$cid = $value['cID'];
$newarr[$cid] = $value;
unset($a[$key]);
}
}
foreach ($a as $key = $value)
{
if($value['fID'] != 0)
{
$fid = $value['fID'];
$newarr[$fid]['zilanmu'][] = $value;
}
}
php键值数据遍历的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于phpforeach遍历数组、php键值数据遍历的信息别忘了在本站进行查找喔 。

    推荐阅读