PHP:如何在foreach循环内移动数组指针?

2024-01-02

$animals = array('cat', 'dog', 'horse', 'elephant');
foreach($animals as $animal)
{
   var_dump($animal);
   next($animals);
}

上面的代码输出:cat、dog、horse、elephant。我以为next函数应该移动内部指针$animals因此,我应该得到这个输出:猫,马。

如何使 $animals 的内部指针向前(和向后)移动,以便在 foreach 中受到影响?

EDIT 1:

从手册中:

由于 foreach 依赖于内部数组指针,因此在 循环可能会导致意外的行为。

尽管如此,我认为这就是我需要做的。

EDIT 2:

根据“您的常识”的链接,我将为我的问题提供更详细的解释。这是一些伪代码:

array $foos;

start loop of $foos
 - do thing #1
 - do thing #2
 - do thing #3
 - keep doing thing #3 while the current value of $foos in the loop meets a certain criteria
loop

当执行返回到循环开始时,它应该从 #3 访问的最后一个数组继续。注意数组是关联的,因此for ($i = 0 ...方法行不通。


You can just create an ArrayIterator­Docs http://php.net/ArrayIterator which is seekable­Docs http://php.net/SeekableIterator.

由于它是一个迭代器,因此您可以更改position while你迭代它,一些基本的例子:

foreach ($iterator as $current) {
    $iterator->next();
}

It should offer everything you need out of the box. If not, you could encapsulate your needs into an Iterator­Docs http://php.net/class.iterator on your own as well.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:如何在foreach循环内移动数组指针? 的相关文章

  • 如何正确转义 CSV 中的双引号?

    我的 CSV 中有这样一行 Samsung U600 24 10000003409 1 10000003427 旁边引用24用于表示英寸 而该引号旁边的引号则关闭该字段 我正在读这行fgetcsv但解析器犯了一个错误 并将该值读取为 Sam
  • PDO 和 Microsoft SQL:必须声明表变量“@P1”

    我正在尝试使用 PDO 中的绑定从 Microsoft SQL 数据库中选择一些条目 我正在使用的代码看起来与我在文档中找到的代码类似 但是 当我运行它时 我收到以下警告 警告 PDOStatement execute pdostateme
  • 提交ajax表单并停留在同一页面不起作用

    我想将用户的评论存储在我的数据库中 当用户提交时 我不想将他们重定向到新页面 我有以下代码 但它不起作用 我的 HTML 代码
  • symfony2 选择单选框的默认值

    我的项目是使用 Silex 和 Symfony 组件 即表单组件 编写的 我尝试创建一组从类中构建的单选按钮 并且我想预先选择其中一个单选按钮 我创建这样的表格 form app form factory gt createBuilder
  • XDebug 与 Symfony 和 PhpStorm 不起作用(Ubuntu 安装)

    关于我的系统的事实乌班图15 10PHP 5 6 11交响乐2 7PhpStorm 10调试2 4我真的很难让 xdebug 在 PhpStorm 的 Symfony 项目下工作 我安装了xdebug 在我的 etc php5 apache
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 如何从 Laravel 5 中的 Public/Images 文件夹中删除图像(URL 数据)

    如何从 laravel 5 中的 public images 文件夹中删除图像文件 我从这个网站找到了一些例子 但我知道他们只是在他们的文件中使用文件名record table 但我正在使用类似的东西URL e g localhost pr
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • symfony 2 形式的函数 getName 做什么

    这是我的表格类 class CommentType extends AbstractType public function buildForm FormBuilder builder array options builder gt ad
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que

随机推荐

  • 使用 Express 4.0 上传文件:req.files 未定义

    我试图获得一个与 Express 4 0 一起使用的简单文件上传机制 但我不断得到undefined for req files in the app post身体 这是相关代码 var bodyParser require body pa
  • Swift Xcode 索引冻结或缓慢

    也许这只是我经历的一个恼人的 功能 从 Xcode 6 0 1 升级到 Xcode 6 1 后 情况发生了变化 Xcode 6 1 永远索引项目或编译源文件 该工程规模并不大 它只包含工作区中的一堆 Swift 文件和 AWS SDK 2
  • 用美元符号替换 javascript regexp 匹配组

    这个应该很简单 让我们看一下字符串 str 1 99 or 4 89 我想在金额前面添加一个美元符号 我试过 str replace d d d g 1 它给了我 1 或 1 所以我坚持做 str replace d d d g 1 rep
  • spring中没有默认构造函数的类的bean类实例化

    我在模型中使用第三方库类 XYZ 作为参数 XYZ 没有默认构造函数 所以 spring 无法为其创建 bean 给出错误消息 org springframework web util NestedServletException Requ
  • 在满足特定条件之前“阻止”的最佳方法

    我想创建一些以通用方式使用的方法 它会阻塞 除非某个超时到期 直到满足给定条件 代码中的用法类似于 WaitUntil condition 我尝试使用 While 循环来实现它 但这似乎是一种浪费 在当前的实现中 我正在初始化一个 一次性
  • 在 ios swift 中实施 Google Analytics

    我正在遵循 Analytics for iOS developers google com analytics devguides collection ios v3 ver swift 指南 但我的 Swift 代码项目中出现了无法修复的
  • 使用 imap 和 php 检索最近 3 封电子邮件

    我试图弄清楚如何使用 imap 和 php 获取最新的 3 封电子邮件 已看到和未看到 由于邮箱内有 1 000 封电子邮件 因此需要节约资源 我认为获取所有标头可能需要太多资源 我只需要发件人 主题和日期 任何想法 感谢您的任何建议 帮助
  • iPhone 上的日期字符串中的毫秒数应使用什么格式字符串?

    我需要解析包含毫秒的格式的字符串 我应该使用什么格式字符串来获取正确的日期值 例如 假设我有一个具有以下值的字符串 2011 06 23T13 13 00 000 在以下代码中我应将什么格式字符串传递给 NSDateFormatter NS
  • VB.NET 中标识符两边的方括号代表什么?

    一般来说 我对 VB 和 NET 非常熟悉 但我刚刚遇到了这段代码 Me GetType 周围括号的用途是什么GetType 方括号用于告诉编译器应该将其解释为类型 即使它是关键字 但你的例子应该是一样的Me GetType 例如 您可以将
  • 良好的 DRY 方法来渲染和 AJAX 更新页面

    想象一下一个评论网站 用户可以在其中输入评级和可选的简短评论 在每个评论页面上 您都会收到许多评论 这些评论显示在页面末尾的表格中 顺便说一句 不寻找数据网格类型控件 太简单了 我想让用户输入新评论并更新页面而无需刷新页面 到目前为止都是简
  • MEF 和 ASP.NET MVC

    我想将 MEF 与 asp net mvc 一起使用 我写了以下控制器工厂 public class MefControllerFactory DefaultControllerFactory private CompositionCont
  • 如何检测在CustomList中单击了哪个按钮以及在哪个位置

    我正在使用自定义列表视图 其中每个项目都有两个按钮 以下是我的项目 xml
  • 导出 JSON 数据并加载到关系数据库中

    是否有将 JSON 数据转换为具有多个表的关系数据库的标准方法 我们需要从 MongoDB 实例导出数据并将其导入 Redshift 集群 唯一的问题是一些 MongoDB 字段包含对象和数组 Redshift 集群接受 CSV 因此我认为
  • 从登录页面删除导航菜单

    有基本的 html admin layout html 我写的 div div div div 有兴趣知道如何从登录页面删除管理导航 尝试设置变量隐藏菜单登录控件并用 ng if hide menu 隐藏它 但这对我不起作用 它隐藏所有管理
  • Appium 错误 Xcode 找不到与“com.facebook.WebDriverAgentRunner”匹配的配置文件

    我在真实 iOS 设备上执行自动化时遇到问题 系统配置 应用程序1 6 0 设备 iPhone 5c ios 10 1 代码8 2 例外是 Xcode Testing failed No profiles for com facebook
  • Chrome 控制台日志看不到 AJAX post/get 请求/响应

    我不知道它是否来自 Chrome 最近的更新之一 我不知道它是否是我在不知不觉中设法关闭的选项 但无论哪种方式 在过去几天的某个时候 我在 Chrome 上的控制台日志停止显示发布 获取请求 因此我可以看到正在发布的内容以及发回的响应内容
  • 多个RecyclerView同步滚动

    我有一个 ViewPager 每页显示一个片段 该片段包含 RecyclerView 内的项目列表 项目列表始终具有相同的大小 并且项目的视图也具有相同的高度 当滚动其中一个 RecyclerView 时 我希望其他 RecyclerVie
  • 如何调用函数的 AWS Lambda 权限列表

    要允许 AWS 服务调用 lambda 函数 您需要应用权限 这json对于此权限可能看起来有点像这样 FunctionName someFunction StatementId 1 Action lambda InvokeFunction
  • 使用 CSS 更改 SVG spritesheet sprite 的颜色

    我使用 SVG spritesheet 作为图标 我想对 hover active 进行颜色更改 我发现 更改 SVG 颜色的唯一方法是 SVG 数据是否内联 有一个很好的脚本可以将外部 svg 转换为内联 SVG 代码 如何使用 CSS
  • PHP:如何在foreach循环内移动数组指针?

    animals array cat dog horse elephant foreach animals as animal var dump animal next animals 上面的代码输出 cat dog horse elepha