【问题标题】:How can find the key of the first non-NULL entry in a array?如何找到数组中第一个非 NULL 条目的键?
【发布时间】:2017-10-26 13:43:26
【问题描述】:

考虑一个不规则地添加值的数组。例如:

$array = [ 'Foo', NULL, 'Bar', 'Baaz', NULL, NULL, 'Another Foo' ];

我怎样才能找到第一个NULLentry 的键没有显式迭代(for、foreach、while...)-AND- 将数组作为数组操作(即不涉及巫术与数组无关的东西)?

在上面的示例中,它将是1,第二个条目的索引。

我的目标是增强我拥有的列表。列表就像数组,但它们始终保持顺序索引(即 1、2、3、4),在添加或删除之后,可以直接操作(这*可能*导致不规则的 NULL)

通过知道第一个 NULL 条目的键是什么,我可以将项目添加到特定索引或不添加,如果没有,我将项目插入“空闲点”

在添加之前重新索引不是一种选择

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码在问题本身。没有清晰的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example
  • 我的代码不起作用吗?你能确定我有一个不起作用的代码吗?你能超越一个不存在的问题,阅读和解释这篇文章吗?谢谢<_>
  • StackOverflow 不是“为我编写代码”服务。
  • “没有迭代”是什么意思? array_search() 例如still iterates 在幕后。
  • 是的,我应该更清楚,我会编辑。 @yivi,只是……别让自己难堪了,伙计

标签: php arrays list


【解决方案1】:

首先你需要更正你的数组,它缺少'

$array = [ 'Foo', NULL, 'Bar', 'Baaz', NULL, NULL, 'Another Foo' ];

可以使用php函数

echo array_search(NULL,$array);

【讨论】:

  • 有趣,我不知道这个功能。它解决了当前提出的问题,但不幸的是,我将无法将其用作我想要的增强功能。顺便说一句,我没有投反对票,一定是来自这个有毒社区的人,因为他们可以投反对票并离开的简单事实而投反对票并离开。谢谢你的时间:)
猜你喜欢
  • 1970-01-01
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
  • 2018-04-26
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
相关资源
最近更新 更多