如果数组元素只是被推入数组,那么数组元素会得到连续的整数索引,我可以很容易地检查下一个元素是否像这样存在。
foreach($array as $id => $element) {
if((isset($array[$id+1]))) {
// Next array item exists
} else {
// Next array element does not exist
}
}
但如果他们有字符串索引,例如:
$array = array(
'Mark' => 'Totally cool person',
'Ben' => 'Kind of a nerd'
);
那么我可以检查下一个元素而不事先计算元素然后在循环内使用计数器吗?
$n = count($array);
$i = 0;
foreach($array as $id => $element) {
if(++$i < $n) {
// Next array item exists
} else {
// Next array item does not exist
}
}
}
答案 0 :(得分:1)
只需循环键而不是值。如果要访问循环内的值,可以使用$array[$keys[$id]]
。
$keys = array_keys($array);
foreach($keys as $id => $element) {
if((isset($keys[$id+1]))) {
// Next array item exists
} else {
// Next array element does not exist
}
}
答案 1 :(得分:0)
下一项不仅仅存在于数组中的最后一项。
可能是简单的方法将从数组中删除最后一项,处理数组没有条件然后将最后一项添加到数组并将其作为项目处理而不用下一步。