php 循环某个数组元素,PHP数组元素循环

PHP教程 - PHP数组元素循环

PHP为我们提供了一组数组访问函数我们可以使用遍历数组中的每个元素,不管元素是如何索引的。

PHP维护一个指向数组元素的内部指针。这个指针最初指向第一个元素,但您可以通过数组向前和向后移动指针。

功能

要操作指针并访问它所指向的元素,请使用以下函数:

功能

描述

current()

获取当前元素的指针,而不改变指针位置。

key()

获取指针指向的当前元素的索引,而不改变指针位置。

next()

将指针向前移动到下一个元素,并返回该元素的值。

prev()

将指针向后移动到前一个元素,并返回该元素的值。

end()

将指针移动到数组中的最后一个元素,并返回该元素的值。

reset()

将指针移动到数组中的第一个元素,并返回该元素的值。

每个这些函数只需要一个参数,数组,并返回必需元素的值或索引,如果元素不能被找到,则为false。

如果在指针位于数组末尾时使用next(),或者在空数组上使用current()。他们会返回假。

例子

逐步数组

$authors = array( "Java", "PHP", "CSS", "HTML" );

echo "The array: " . print_r( $authors, true ) . "\n";

echo "The current element is: " . current( $authors ) . "\n";

echo "The next element is: " . next( $authors ) . "\n";

echo "...and its index is: " . key( $authors ) . "\n";

echo "The next element is: " . next( $authors ) . "\n";

echo "The previous element is: " . prev( $authors ) . "\n";

echo "The first element is: " . reset( $authors ) . "\n";

echo "The last element is: " . end( $authors ) . "\n";

echo "The previous element is: " . prev( $authors ) . "\n";

?>

上面的代码生成以下结果。

6b21085e29c030a80a4bbfe14d161944.png

实施例2

检索数组的最后一个元素,而不知道它是如何索引的。

// Create a sparse indexed array

$authors = array( 0 => "Java", 1 => "PHP", 2 => "CSS", 47 => "HTML" );

echo end( $authors ); // Displays "HTML"

?>

上面的代码生成以下结果。

0d479dd4968d847bba2628c5f851bbc8.png

每个功能

each()返回一个四元素数组,而不是一个值。此数组包含当前元素的键以及其值。如果元素不能被检索,因为指针已经到达或者因为数组为空,each()返回false。

这使得很容易判断每个()是否检索到值为false的元素在这种情况下,它返回四元素数组或如果它不能检索一个元素,在这种情况下它返回false。

四元素数组each()包含数字和字符串索引的元素,如下所示:

元素索引

元素值

0

当前元素的键

"key"

当前元素的键

1

当前元素的值

"value"

当前元素的值

换句话说,您可以使用0或“key"的索引访问当前元素的键,或索引1或“值"来访问其值。 例如:

$myBook = array( "title" => "Learn PHP from www.w3cschool.cn",

"author" => "www.w3cschool.cn",

"pubYear" => 2000 );

$element = each( $myBook );

echo "Key: " . $element[0] . "\n";

echo "Value: " . $element[1] . "\n";

echo "Key: " . $element["key"] . "\n";

echo "Value: " . $element["value"] . "\n";

?>

上面的代码生成以下结果。

64bc16a6973d61ca9fa6060e2a606c09.png

实施例3

使用each()检索值为false的数组元素:

$myArray = array( false );

$element = each( $myArray );

$key = $element["key"]; // $key now equals 0

$val = $element["value"]; // $val now equals false

?>

因为each()都返回当前数组元素并前进数组指针,它很容易使用它在一个while循环移动通过所有元素的数组。 以下示例通过$ myBook数组,返回每个元素的键和值。

$myBook = array( "title" => "Learn PHP from www.w3cschool.cn",

"author" => "www.w3cschool.cn",

"pubYear" => 2000 );

while ( $element = each( $myBook ) ) {

echo " < dt > $element[0] < /dt > ";

echo " < dd > $element[1] < /dd > ";

}

?>

上面的代码生成以下结果。

8ba26c68fbfa5145c8f9829b6eb389bb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值