导航:首页 > 编程语言 > phpforeach语句

phpforeach语句

发布时间:2022-04-28 02:05:02

php中的函数-- foreach()的用法详解

PHP
4
引入了
foreach
结构,和
Perl
以及其他语言很像。这只是一种遍历数组简便方法。foreach
仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
复制代码
代码如下:
foreach
(array_expression
as
$value)

statement
foreach
(array_expression
as
$key
=>
$value)

statement
第一种格式遍历给定的
array_expression
数组。每次循环中,当前单元的值被赋给
$value
并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量
$key。
自PHP
5
起,还可能遍历对象。
注意:当
foreach
开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在
foreach
循环之前调用
reset()。
注意:除非数组是被引用,foreach
所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在
foreach
循环中或循环后都不要依赖数组指针的值。

PHP
5
起,可以很容易地通过在
$value
之前加上
&
来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
复制代码
代码如下:
<?php
$arr
=
array(1,
2,
3,
4);
foreach
($arr
as
&$value)
{

$value
=
$value
*
2;
}
//
$arr
is
now
array(2,
4,
6,
8)
?>
此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。
复制代码
代码如下:
<?php
foreach
(array(1,
2,
3,
4)
as
&$value)
{

$value
=
$value
*
2;
}
?>

② 关于php的foreach

mysql_fetch_array();
只读取一行,读取出来的数组为
array(
[0]=>本行第一列数据
[本行第一列名称]=>本行第一列数据
[1]=>本行第二列数据
[本行第二列名称]=>本行第二列数据
。。。。。。
)
所以你用foreach来操作自然不能遍历所有的数据,你只是打印了结果数据表中的第一列

③ PHP中foreach函数用法

1.foreach(被foreach的对象(一般是数组)as 内容) {

}

例子
$x = array(1,2,3,4,5)
foreach ($x as $y) {
//这里的y依次为1,2,3,4,5
}

2.foreach(被foreach的对象(一般是数组)as index => 内容) {

}

例子
$x = array(1,2,3,4,5)
foreach ($x as $index => $y) {
//这里的y依次为1,2,3,4,5, $index依次为0,1,2,3,4
}

④ php 怎么调用foreach

foreach 是php里用来遍历数组用的

具体用法下

//普通数组
$arr=array(1,2,3,4,5);
foreach($arras$v){
echo$v." ";
}

//键值数组
$arr2=array(
"a"=>1,
"b"=>2,
"c"=>3,
);
foreach($arr2as$k=>$v){
echo$k."==".$v." ";
}

执行结果:

⑤ php foreach 用法

楼主你的问题我也遇到过
这是为什么呢?
$a
=
array("1"=>"语文","2"=>"数学","3"=>"英语");
上面这个和下面这个是完全一样的
$a[1]="语文";
$a[2]="数学"
$a[3]=“英语”
楼主我们输出上面的数组是怎么输出的呢?
肯定是echo
$a[1];
对不对?
如果没有疑问我们继续!!!!
------------------------------
不知道foreach楼主有没有完全理解
他的格式是这样的foreach(数组名
as
下标=>值)
下标也就是上面的$a[1],这里的1就是数组的下标!
到这你应该明白了,为什么是$a[$key]这样输出
你记住不管怎么变,数组的输出方法永远是$a[1],不会是$a['语文']

⑥ php foreach问题

兄弟。你改的是有效的,但是,你的修改后的值是存在内存中的,当前的值是已经再你加之前就计算为3和5了,相当于你的这个值现在是生效不了的,只有在下次循环的时候,才能生效,只是我不知道你这样能否理解我说的。和楼上说的一样,

⑦ 关于php中foreach循环,应该怎么写

<div class="main"> <ul class="list"> <?php foreach ($rates as $key => $rate) { foreach ($rate['info'] as $rate) { echo '<li> <!--这里循环调用一个图片--> <div class="pic"> <a href="#" style="background:url('.$pic300.') top no-repeat;"></a> </div> <!--这里循环调用一个图片结束--> <div class="pl"> <div class="pl_box"> <div class="pl_t">看看大家都在说什么...</div> <div class="pl">
<?php $respl = $this->db->....();//取出评论的记录集
<?php foreach($respl as $item):?> <!--这里循环调用三条评论--> <div class="pl_nr"> <p class="nr">'.$item'</p> </div> <!--这里循环调用三条评论结束-->

<?php endforeach;?> </div> </div> </div> </li>'; } } ?> </ul> <ul class="av"> <!--这里循环调用一张图片--> <li> <a href="#" target="_blank" style="background:url('.$pic80.') no-repeat;"></a> </li> <!--这里循环调用一张图片结束--> </ul></div>

⑧ PHP中的foreach

foreach($array as $key)
{
if(xxxx)
{
break; //break 会终止循环
}
if(zzz)
{
continue; //continue 会终止本次循环,此刻会进入下一个循环;
}
}

⑨ php中foreach循环语句 如何使用

$conn=mysql_connect("localhost","root","");
mysql_select_db("test");
mysql_query("set names utf8",$conn);
$result=mysql_query("select * from tb_messages");
$result=mysql_query($sql_excel);
while($arr = mysql_fetch_assoc($result)){
$content[]=$arr;

}
$table = '<table>';
$table .= '<thead><tr><th>id</th><th>标题</th><th>电话</th><th>地址</th><th>审核状态</th><th>内容</th><th>留言时间</th></thead>';
$table .= '<tbody>';
foreach($content as $key=>$value){
$table .= "<tr>";
$table .= "<td>".$value['id'].'</td>';
$table .= "<td>".$value['title'].'</td>';
$table .= "<td>".$value['phone'].'</td>';
$table .= "<td>".$value['address'].'</td>';
$table .= "<td>".$value['ischeck'].'</td>';
$table .= "<td>".$value['content'].'</td>';
$table .= "<td>".substr($value['datetime'],0,11).'</td>';
$table .= '</tr>';
}
$table .= '</tbody>';
$table .= '</table>';
echo $table;

⑩ PHP中foreach循环中使用引用要注意的地方

复制代码
代码如下:
foreach
($array
as
&$row)
{
$row
=
explode('/',
$row);
}
foreach
($array
as
$row)
{
//do
something
}
这么写,在第二个循环会出逻辑错误,加入第二个循环中do
something的地方是输出$row,循环到最后一个的时候的输出是倒数第二个元素,而不是最后一个
要这么写
复制代码
代码如下:
foreach
($array
as
&$row)
{
$row
=
explode('/',
$row);
}
unset($row);
foreach
($array
as
$row)
{
//do
something
}
或者第一个循环这么写
复制代码
代码如下:
foreach
($array
as
$key
=>
$row)
{
$array[$key]
=
explode('/',
$row);
}
说一下原理
第一个循环使用了引用,循环结束后,$row引用的是$array数组的最后一个元素,当开始第二个循环的时候,$row变量每次循环都会被赋一个新值,在php中,如果一个内存空间是被引用的,那么当改变它的时候是直接改变这块内存空间的值,也就是说,当第二个foreach的第一次循环,$array的最后一个元素的值就被改变为$array的第一个元素的值,第二次循环的时候,改变为第二个元素的值,倒数第二次循环的时候,被改变为倒数第二个元素值,而最后一次循环的时候得道的值必然是那个倒数第二个值
当然,如果php的for循环有作用域的话,也不会出现此问题.....

阅读全文

与phpforeach语句相关的资料

热点内容
linux安装xdm 浏览:736
java计算12 浏览:249
大金空调摆动式压缩机 浏览:453
新的云服务器如何设置首页 浏览:687
javastring字符位置 浏览:196
银河麒麟字体库存在哪个文件夹 浏览:956
魔兽加丁服务器的航空叫什么 浏览:152
花冠改装案例哪个app多 浏览:515
成绩单app哪个好用 浏览:140
北美程序员vs国内程序员 浏览:181
php解析xml文档 浏览:121
石墨文档APP怎么横屏 浏览:185
墙主钢筋加密和非加密怎么看 浏览:144
金山区文件夹封套定制 浏览:708
soho程序员 浏览:672
java字节截取 浏览:526
php提交作业 浏览:815
房产还没解压可以办理赠予吗 浏览:224
java毫秒转分钟 浏览:753
模式识别中文pdf 浏览:774