我知道我可以使用array_slice()
来创建一个除了第一个&最后一个元素,对每个元素执行操作,然后重新处理原始的第一个和最后一个值。这似乎有点矫枉过正了。是否有更简洁的方法来执行操作(在这种情况下,只是在数组值上附加和前置字符串)在所有内部数组元素上而不是在末端?
答案 0 :(得分:3)
我可能会遗漏一些东西,但不会这样做吗?
for ($i = 1; $i < count($arr) - 1; $i++) {
// Do stuff to $arr[$i], like prefixing and suffixing
$arr[$i] = 'prefix ' . $arr[$i] . ' suffix';
}
答案 1 :(得分:0)
有很多方法。一个是:
for($i = 1; $i < count($arr)-1; $i++) {
// process $arr[$i];
}
如果你的数组是关联的,并且已经以某种有意义的方式排序,你可以这样做:
$keys = array_keys($arr);
for($i = 1; $i < count($arr)-1; $i++) {
// process $arr[$keys[$i]];
}
答案 2 :(得分:0)
这个怎么样:
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);
}