$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']
但是选择第一个元素有更短的方法吗?因为在我的情况下钥匙串很长......
(我只需要在第一个文本中添加一些文本,并将一些文本附加到最后一个值)
答案 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 )
参考 -