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)
,以确保您认为在数组中的内容实际上是正确的。
循环代码的是正确的,因此肯定是其他错误。