1
$arr = array(
  'some ugly string as key'  => 'value',
  'some ugly string as key2' => 'value2',

);

我知道可以通过以下方式完成:

$arr['some ugly string as key'] = 'prefix' . $arr['some ugly string as key']

但是有没有更短的方法来选择第一个元素?因为在我的情况下,密钥字符串很长......

(我只需要在第一个值前面加上一些文本,然后在最后一个值后面加上一些文本)

4

3 回答 3

3

我会使用array_keys()将键本身作为数组获取,然后使用 [0] 和 [length-1] 从该数组中选择第一个和最后一个元素。

$arr = array(
  'some ugly string as key'  => 'value',
  'some ugly string as key2' => 'value2',
);

$keys = array_keys($arr);

$firstKey = $keys[0];
$lastKey = $keys[sizeof($arr) - 1];

$arr[$firstKey] = "foo " . $arr[$firstKey]; 
$arr[$lastKey] =  $arr[$lastKey] . "bar "; 
于 2012-09-28T00:52:24.640 回答
2

这是可行的,首先您重置数组,使内部指针位于开头,然后获取当前指针所在的键,然后为该键分配一个新值。

$array1 = array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');
reset($array1);
$first = key($array1);
$array1[$first] = "New Value";
echo $array1['key1'];

输出“新价值”

于 2012-09-28T00:46:28.190 回答
2

数组函数的组合将在这里为您提供帮助。

  • array_shift - 将一个元素从数组的开头移开
  • array_unshift - 将一个或多个元素添加到数组的开头
  • array_pop - 弹出数组末尾的元素
  • array_push - 将一个或多个元素压入数组末尾
$arr = array("overflow", "superuser", "server");

// prepend first element
$first = array_shift($arr);
$first = 'stack'.$first;
array_unshift($arr,$first);

// append last element
$last = array_pop($arr);
$last .= 'fault';
array_push($arr,$last);

print_r($arr);

输出 -

Array
(
    [0] => stackoverflow
    [1] => superuser
    [2] => serverfault
)

参考 -

于 2012-09-28T00:47:25.937 回答