PHP:对除第一个和最后一个之外的所有数组元素执行操作

PHP:对除第一个和最后一个之外的所有数组元素执行操作,php,arrays,slice,Php,Arrays,Slice,我知道我可以使用array\u slice()创建除第一个和最后一个元素以外的所有元素的新数组,对每个元素执行操作,然后将原始的第一个和最后一个值重新固定。不过,这似乎有些过分了。是否有一种更干净的方法可以对所有内部数组元素执行操作(在本例中,只是在数组值上附加和前置字符串),而不是在末端执行操作?我可能遗漏了一些内容,但这不就可以了吗 for ($i = 1; $i < count($arr) - 1; $i++) { // Do stuff to $arr[$i], like p

我知道我可以使用
array\u slice()
创建除第一个和最后一个元素以外的所有元素的新数组,对每个元素执行操作,然后将原始的第一个和最后一个值重新固定。不过,这似乎有些过分了。是否有一种更干净的方法可以对所有内部数组元素执行操作(在本例中,只是在数组值上附加和前置字符串),而不是在末端执行操作?

我可能遗漏了一些内容,但这不就可以了吗

for ($i = 1; $i < count($arr) - 1; $i++) {
   // Do stuff to $arr[$i], like prefixing and suffixing
   $arr[$i] = 'prefix ' . $arr[$i] . ' suffix';
}
for($i=1;$i
有很多方法。其中之一是:

for($i = 1; $i < count($arr)-1; $i++) {
    // process $arr[$i];
}
for($i=1;$i
如果数组是关联的,并且已以某种有意义的方式进行排序,则可以执行以下操作:

$keys = array_keys($arr);
for($i = 1; $i < count($arr)-1; $i++) {
    // process $arr[$keys[$i]];
}
$keys=array\u keys($arr);
对于($i=1;$i
这个怎么办:

reset($array);
$firstKey = key($array);
end($array);
$lastKey = key($array);
foreach($array as $key => $value) {
    if ($key === $firstKey || $key === $lastKey) {
         continue;
    }
    do_your_stuff($key, $value);
 }

如果OP使用的是关联数组,可能不会,但在这种情况下,顺序很奇怪。如果它是关联数组,并且已经排序,它们可以做同样的事情。只需在循环中获取
array\u键($arr)[$i]
,然后使用该键对项目进行操作。这会将$i设置回1,因此更改
$arr[i]
只会影响
$arr[1]
;它似乎只打印
$arr[1]
,但打印次数为
计数($arr)-2次。在进入
for
循环之前,请执行
打印($breadcrumb)
,以确保您认为在数组中的内容实际上是正确的。
循环代码的
是正确的,因此肯定是其他错误。