PHP - 如何从数组中获取最后一个元素之前的元素?
如何从 PHP5 数组中获取最后一个元素之前的元素?
How can I get the element before the last element from an array in PHP5 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何从 PHP5 数组中获取最后一个元素之前的元素?
How can I get the element before the last element from an array in PHP5 ?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
即使在此数组上,这也适用:
使用 count() 的其他解决方案假设数组的索引按顺序排列;通过使用 end 和 prev 移动数组指针,您可以获得实际值。尝试对上面的数组使用 count() 方法,它会失败。
This will work even on this array:
The other solutions using count() are assuming that the indexes of your array go in order; by using end and prev to move the array pointer, you get the actual values. Try using the count() method on the array above and it will fail.
它应该是一个数字索引数组(从零开始)。您应该至少有 2 个元素才能使其发挥作用。 (明显地)
It should be a numerically indexed array (from zero). You should have at least 2 elements for this to work. (obviously)
array_slice 采用负偏移量作为第二个参数。这将为您提供一个包含倒数第二个项目的单个项目数组:
如果您只想要单个值,您有多种选择。如果您不介意使用中间变量,则可以使用 [0] 获取第一个值或调用 array_pop 或 array_shift,它们都需要通过引用传递的变量,否则您将在严格模式下收到警告。
或者您可以只使用 array_sum 或 array_product,这有点 hacky,但对于单个项目数组来说效果很好。
array_slice takes a negative offset as the second argument. This will give you a single item array containing the second last item:
If you just want the single value on it's own you have several options. If you don't mind using an intermediate variable you can then just get the first value with [0] or call array_pop or array_shift, they both need a variable passed by reference or you'll get warnings in strict mode.
Or you could just use array_sum or array_product, which is a bit hacky but works fine for single item arrays.
适用于关联数组和数值数组的方法是使用
array_pop()
将元素从数组末尾弹出。A method that will work for both associative array and numeric array is to use
array_pop()
to pop the element off the end of array.所有数组都有一个指向当前数组元素的“内部数组指针”,PHP 有几个函数允许您浏览数组并查看当前元素的键和值。
end()
- 设置一个函数的内部指针数组到最后一个元素reset()
- 设置数组的内部指针,指向其第一个元素prev()
< /a> - 倒回内部数组指针next()
- 前进数组的内部数组指针current()
- 返回数组中的当前元素key()
- 从数组中获取键each()
- 从数组返回当前键和值对并前进数组光标无论数组是空的、顺序的还是关联的,这些函数都可以工作,并且由于在示例中尚未指定数组,我假设这必须适用于任何阵列。
正如您所看到的,预期结果 (
false
) 和不存在元素的结果是相同的 (FALSE
),因此您无法使用返回的元素值检查元素是否存在,元素键不同。key()
如果元素存在则返回当前键的值,否则返回 NULL 。有效的键永远不能为 NULL,因此如果返回 null,我们可以确定该元素不存在。
All arrays have an "internal array pointer" which points to the current array element, PHP has several functions which allow you to navigate through the array and view the current elements key and value.
end()
- Set the internal pointer of an array to its last elementreset()
- Set the internal pointer of an array to its first elementprev()
- Rewind the internal array pointernext()
- Advance the internal array pointer of an arraycurrent()
- Return the current element in an arraykey()
- Fetch a key from an arrayeach()
- Return the current key and value pair from an array and advance the array cursorThese functions work whether the array is empty, sequential or associative and as an array has not been specified in the example i've assumed this must work with any array.
As you can see the expected result (
false
) and the result for a nonexistent element is the same (FALSE
) so you cannot check whether an element exists using the returned element value, an element key is different.The
key()
returns the value of the current key if the element exists otherwise it will return NULL.A valid key can never be NULL so if null is returned we can determine that the element does not exist.