如何找到现有数组的下一个数字索引?

2024-01-10

我正在寻找一种简单的方法来获取 PHP 也会选择的新元素的数组的下一个数字索引。

示例1:

$array = array();
$array[] = 'new index';

对于这种情况,该值将为 0。

示例 1a:

$array = array(100 => 'prefill 1');
unset($x[100]);
$x[] = 'new index';

对于本例,该值为 101。

示例2:

$array = array(-2 => 'prefill 1' );
$array[] = 'new index';

对于这种情况,这将再次为 0。

示例3:

$array = array(-2 => 'prefill 1', 1 => 'prefill 2' );
$array[] = 'new index';

对于本例,该值为 2。

我现在想知道 PHP 也会为数组中的新元素选择的下一个数字键,但如果可能的话,不会迭代所有数组值。

我需要通过 SPL 实现自己的数组,如果添加新元素但未指定偏移量,则该数组应该模仿 PHP 默认行为。

示例4:

$array = array(-2 => 'prefill 1', 'str-key-1' => 'prefill 2', 1 => 'prefill 3' , 'str-key-2' => 'prefill 4');
$array[] = 'new index';

对于这种情况,这又是 2。

实施例5:

$array = array(-2 => 'prefill-1', 'str-key-1' => 'prefill-2', 1 => 'prefill-3' , '5667 str-key-2' => 'prefill-4');
$array[] = 'new index';

对于这种情况,这也将是 2。

更新:我添加了更多示例来展示一些边缘情况。


方法一:

Use end http://php.net/manual/en/function.end.php将数组推进到末尾。则得到key http://php.net/key该项目的。最后加1即可得到下一项的索引。像这样:

$array [ ] = 'I';
$array [4] = 'Like';
$array [ ] = 'Turtles';

end($array);
$last = key($array);
$nextindex = $last + 1;

echo $nextindex;

这输出:

6

如果最后一个索引不是最大的或不是字符串(如注释中指出的),此方法会失败。所以,就有了这个更好的方法2在那些情况下。


方法二:

此方法适用于负索引和基于字符串的索引:
你可以得到array_keys http://php.net/manual/en/function.array_keys.php并做一个max http://php.net/manual/en/function.max.php其中,那么+1。像这样:

 $array = array(-2 => 'prefill 1', 'str-key-1' => 'prefill 2', 1 => 'prefill 3' , 'str-key-2' => 'prefill 4');
 echo max(array_keys($array)) + 1;

正确输出:

2

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

如何找到现有数组的下一个数字索引? 的相关文章

  • Laravel Auth:attempt() 不会持久登录

    我在网上找到了许多有类似问题的资源 但似乎没有一个解决方案可以解决我的问题 当我使用以下代码登录用户时 一切看起来都很好 email Input get email password Input get password if Auth a
  • 在 PHP 中包含 PHP 文件

    我有一个网站 它运行 PHP if 语句来根据附加文件的类型 即 Jpg Txt MP4 显示内容 所以我显示 TXT 文件的代码是 if post attachment txt display attachment div class d
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • TypeScript 枚举到对象数组

    我有一个这样定义的枚举 export enum GoalProgressMeasurements Percentage 1 Numeric Target 2 Completed Tasks 3 Average Milestone Progr
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • PHP - 类外 use 关键字和类内 use 关键字的区别

    伙计们 美好的一天 只是想问一下有什么区别use之外的class and use在 的里面class 我也用谷歌搜索过 但我的问题与答案不匹配 Example namespace App Http Controllers Auth use
  • Turbo C 阵列问题

    我只是想问一些关于我的代码的事情 define LIM 40 main int day 0 float temp LIM clrscr do printf Enter temperature for day d day scanf f te
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • PHP 中的引用

    我正在编写一个自定义博客引擎 并且希望拥有类似于 Wordpress 的引用 我可以查看 WordPress 源代码 但我真的更喜欢某种教程 但到目前为止我还没有找到 有没有关于在 PHP5 中实现 trackbacks 或 pingbac
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 如何使用 php 在 sql 查询中转义引号?

    我有一个疑问 sql SELECT CustomerID FROM tblCustomer WHERE EmailAddress addslashes POST username AND Password addslashes POST p
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012

随机推荐

  • 压缩输出与 Go to Ruby 实现不同

    我正在实现一个程序 将文件压缩为 git blob 并适当存储它 我有一个红宝石参考实现 https github com sgen git deflate blob bugfix deflate deflate file这是基于git 书
  • “找不到主类。程序将退出”

    我正在尝试运行 SQuirreL SQL 我已经下载并安装了它 但是当我尝试运行它时 我收到以下错误消息 Java 虚拟机启动器 无法找到主类 程序将会退出 我明白了这一点 但我不知道如何解决它 有什么帮助吗 更多信息 我使用的是 Wind
  • Win32_Product 的替代品?

    尝试查询后Win32 Product寻找软件版本时 我无法理解为什么结果如此缓慢 比查询慢15倍Win32 service or Win32 process 所以来这里看看我是否遗漏了什么 我发现其他人也报告了同样的问题 而这个articl
  • 如何查看 JDBC / MySQL 的 TRANSACTION_REPEATABLE_READ 操作?

    我的计算机上当前运行 MySQL 服务器 5 7 16 并且此服务器上名为 Sakila 的数据库中有此示例行 mysql gt SELECT FROM actor WHERE last name tugay actor id first
  • 使用 vba 查看和隐藏 Excel 中的列

    我有一个工作表 其中 B G 列中包含值 在单元格 A1 的同一张表中 我使用数据验证创建了一个下拉列表 其中包含 A B 和 C 等值 我需要的是 当我选择单元格值 A 时 B C 列需要可见 而其他列应该对 D G 隐藏 以同样的方式
  • 如何实现多个PanGestures(可拖动视图)?

    我想要几个可以拖放的对象 这是我移动一个对象的代码 在 vacawama 的帮助下 import UIKit class ViewController UIViewController IBOutlet weak var panView U
  • 在后台运行进程,同时用户仍然可以使用 UI

    我试图在后台运行数据库获取过程而不锁定用户界面 目前我有一个按钮可以执行此操作 但我希望它是自动的 以便在用户浏览当前结果时可以获得更多结果 这是按钮执行的代码 我想使其自动执行而不锁定用户界面 此外 如果有一种方法可以暂停该过程 但如果用
  • EPPlus - 我是否需要对 ExcelRange 等对象调用 Dispose?

    我正在使用 C EPPlus 库创建 Excel 文档 ExcelWorksheet ws pkg Workbook Worksheets Add Sheet1 ws Cells E3 Value Foo ws Cells F3 Value
  • 使用桌面模式在手机上打开 flutter web

    我目前正在构建一个 flutter web 我已将屏幕 ui 分为 3 个部分 桌面 选项卡和手机的 ui 因此 假设当屏幕宽度 X1000 桌面 ui 时 到目前为止 它运行良好 但问题是 当我在手机浏览器中打开它并使用桌面模式 桌面站点
  • 下划线绑定 vs jQuery.proxy vs Native 绑定

    我在回调中遇到一些上下文问题 我用谷歌搜索并发现几个选项 本机绑定 旧浏览器不支持 jQuery 代理 下划线绑定 如果我不需要支持旧的浏览器 我肯定会使用本机绑定 应该注意这些之间有什么显着差异吗 这些可以用作致电 申请的替代方法吗 AF
  • 读取数据时删除包含某些字符串的列:python

    我正在读取目录中的 txt 文件 并希望删除包含某些特定字符串的列 for file in glob iglob files txt recursive True cols list pd read csv file nrows 1 df
  • 强制 Internet Explorer 9 使用 IE 9 模式

    我正在使用 HTML5 文档类型 其顶部附近带有 X UA Compatible 元标记
  • 如何在 Swift 中将 Int 转换为 NSData?

    在 Objective C 中我使用以下代码 转换一个Int变量变为NSData 一个字节包 int myScore 0 NSData packet NSData dataWithBytes myScore length sizeof my
  • 如何从其余客户端推送通知以进行测试

    您好 我正在尝试将通知从其余客户端推送到 Android 应用程序 我正在做如下 URL https android googleapis com gcm send Method POST Headers Authorization my
  • Heroku (Docker) nginx 中的 PORT 环境变量

    我只需对 Dockerfile 进行一些修改 即可在 Heroku 上使用 nginx 运行它 Heroku 的特别之处在于 一切都以非 root 身份运行 第二个特定行为是使用来自 Heroku 本身的随机端口 并且无法修改 他们提供了
  • 序列输出的循环 - python

    我一直在努力寻找一种方法 将序列中的 6 聚体打印在单独的行上 这样 注意每行的间距 atgctagtcatc tgctag gctagt ctagtc tagtca etc 到目前为止 我已经能够在字符串中获取序列 如下所示 from B
  • 如何通过代码将Jupyter Notebook保存为HTML?

    我有一个 Jupyter Notebook 程序 它可以为我进行分析 运行后 我想将其保存为 HTML 以便稍后查看 然后我可以更改输入数据文件以对其他数据进行分析 通常 我手动执行此操作 这看起来像 但这对我来说感觉非常乏味 所以我想知道
  • 数据表 - 动态列

    我知道这个问题之前已经被问过 但我的变体与其他答案不匹配 我有一个这种形式的 json 数据源 columns title Store Number data StoreNbr title Store Name data StoreName
  • 如何添加和删除拉斐尔元素的发光?

    我正在尝试为拉斐尔元素设置悬停 以便当鼠标位于元素上时 它会发光 当鼠标离开时 发光会被移除 我已经弄清楚如何添加发光 但我在删除它时遇到了麻烦 我的脚本如下所示 document ready function var paper Raph
  • 如何找到现有数组的下一个数字索引?

    我正在寻找一种简单的方法来获取 PHP 也会选择的新元素的数组的下一个数字索引 示例1 array array array new index 对于这种情况 该值将为 0 示例 1a array array 100 gt prefill 1