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 -1つ以上の要素を配列の先頭に追加します
  • array_pop-配列の最後から要素をポップします
  • array_push -1つ以上の要素を配列の最後にプッシュします
$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 に答える