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循环内移动数组指针? 的相关文章

  • Zend Framework 生成唯一的字符串

    我想生成一个唯一的 4 6 个字符长的字母数字字符串 以便与每个记录 用户 一起保存在数据库中 db 字段具有唯一索引 因此尝试保存预先存在的字符串会生成错误 现在我正在生成一个随机字符串并使用 try catch 因此在添加新记录时如果抛
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • 通过 Ajax 加载内容时,WORDPRESS 音频播放器未加载,MediaElement.js 未应用

    我正在创建一个 WordPress 主题 当我使用 ajax 加载内容时 它不会将 MediaElements js 应用于我的音频播放器 因此不会显示音频 我认为这是因为 MediaElement js 加载了 wp footer 并且此
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 删除PHP字符串中所有不匹配的字符?

    我有一个文本 我想从中删除所有不属于以下字符的字符 所需字符 0123456789 abcdefghijklmnopqrstuvwxyz n 最后一个是我确实想保留的 n 换行符 要匹配除列出的字符之外的所有字符 请使用反转字符集 http
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 将“php”作为 shell 脚本执行时的自定义 php.ini 文件

    我在跑php作为 shell 脚本 我不确定 shell脚本 是否正确 该文件以 usr bin php 这很好用 但 MongoDB 类没有正确加载php ini文件 具有extension mongo so 未使用 我该如何使用它tha
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 如何在原则 2 迁移中删除外键

    我想在原则 2 迁移中删除外键 但没有 dropForeignKeyConstraint 有谁知道怎么丢掉吗 public function down Schema schema table schema gt getTable table
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一

随机推荐

  • 使用 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