如何更改关联数组元素的值

时间:2012-09-28 00:37:19

标签: php arrays

$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']

但是选择第一个元素有更短的方法吗?因为在我的情况下钥匙串很长......

(我只需要在第一个文本中添加一些文本,并将一些文本附加到最后一个值)

3 个答案:

答案 0 :(得分: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 "; 

答案 1 :(得分:2)

这样做,首先重置数组,使内部指针位于开头,然后获取当前指针所在的键,然后为该键指定一个新值。

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

输出“新价值”

答案 2 :(得分: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
)

参考 -