each函数

函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动。

语法 : array each( array );

返回值 : 数组

函数种类 : 资料处理

内容说明:

返回数组为目前数组指针的 索引/值 对。返回的数组有四个元素,依序为 0, 1, 索引, 及值。前述的 0 与 索引 为数组的索引(key),1 与 值则为数组元素的值(value)。

使用范例

范例一:

<?
$foo = array( "bob", "fred", "jussi", "jouni" );
$bar = each( $foo );
?>

上面的例子,返回数组 $bar 的 索引/值 为

0 => 0
1 => 'bob'
key => 0
value => 'bob'

范例二:

<?
$foo = array( "Robert" => "Bob", "Seppo" => "Sepi" );
$bar = each( $foo );
?>

这个的例子,返回数组 $bar 的 索引/值 为

0 => 'Robert'
1 => 'Bob'
key => 'Robert'
value => 'Bob'

范例三:
each() 函数最典型的例子是拿来与 list() 函数合用,如下例的 $HTTP_POST_VARS 变量。

<?
echo "POST 所送出的值为:<br>";
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
  echo "$key => $val<br>";
}
?>

相关的方法:

  • current() - 返回数组中的当前元素的值
  • end() - 将内部指针指向数组中的最后一个元素,并输出
  • next() - 将内部指针指向数组中的下一个元素,并输出
  • prev() - 将内部指针指向数组中的上一个元素,并输出
  • reset() - 将内部指针指向数组中的第一个元素,并输出
<?php
$people = array("Bill", "Steve", "Mark", "David");

echo current($people) . "<br>"; // 当前元素是 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve
echo current($people) . "<br>"; // 现在当前元素是 Steve
echo prev($people) . "<br>"; // Steve 的上一个元素是 Bill
echo end($people) . "<br>"; // 最后一个元素是 David
echo prev($people) . "<br>"; // David 之前的元素是 Mark
echo current($people) . "<br>"; // 目前的当前元素是 Mark
echo reset($people) . "<br>"; // 把内部指针移动到数组的首个元素,即 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve

print_r (each($people)); // 返回当前元素的键名和键值(目前是 Steve),并向前移动内部指针
?>

运行结果:

Bill
Steve
Steve
Bill
David
Mark
Mark
Bill
Steve
Array ( [1] => Steve [value] => Steve [0] => 1 [key] => 1 )

转载至PHP 完全中文手册w3school PHP函数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
list_for_each函数是一个用于遍历链表的宏定义。它通过一个循环,将pos指针依次指向链表中的每一个节点,并执行指定的操作。具体而言,它的参数包括pos、head,其中pos是一个指向当前节点的指针,head是链表的头指针。该宏定义的循环条件是pos不等于head,每次循环都将pos指向下一个节点,直到遍历完整个链表。 然而,当我们使用list_for_each函数遍历链表时,如果删除链表中的某个元素,会导致pos指向的元素的prev指针和next指针被设定为特殊的值LIST_POISON1和LIST_POISON2。当执行到pos = pos->next时,就会出现错误。 为了安全地删除链表中的元素,可以使用list_for_each_safe函数。它是一个具有相似功能的宏定义,其参数除了pos和head外,还包括n,n是一个用于临时存储下一个节点的指针。在循环的每一次迭代中,pos被赋值为当前节点,n被赋值为下一个节点,以便在删除当前节点后,仍能正确遍历链表。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux内核中list_for_each()和list_for_each_safe()](https://blog.csdn.net/ibless/article/details/81951333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值