1

我知道我可以array_slice()用来创建一个新数组,其中包含除第一个和最后一个元素之外的所有元素,对每个元素执行操作,然后重新添加原始的第一个和最后一个值。不过,这似乎有点矫枉过正。有没有一种更简洁的方法来对所有内部数组元素而不是在末端执行操作(在这种情况下,只是将字符串附加和前置到数组值中)?

4

3 回答 3

3

我可能会遗漏一些东西,但这不会起到作用吗?

for ($i = 1; $i < count($arr) - 1; $i++) {
   // Do stuff to $arr[$i], like prefixing and suffixing
   $arr[$i] = 'prefix ' . $arr[$i] . ' suffix';
}
于 2012-07-19T14:16:26.357 回答
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]];
}
于 2012-07-19T14:21:11.053 回答
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);
 }
于 2012-07-19T14:21:27.217 回答