3

私はliteral_key=>値を持つPHP配列を持っています。キーと値を配列の最初からずらして、最後に貼り付ける必要があります(キーも保持します)。

私はもう試した:

$f = array_shift($fields);
array_push($fields, $f);

しかし、これはキー値を失います。元:

$fields = array ("hey" => "there", "how are" => "you");

//上で実行

これにより、次のようになります。

$fields = array ("how are" => "you", "0" => "there");

(私は「ねえ」を維持し、0を持たないようにする必要があります)何かアイデアはありますか?

4

2 に答える 2

4

私の知る限り、を使用して配列に結合値を追加したり、を使用しarray_push()てキーを取得したりすることはできませんarray_shift()。(同じことが言えますpop/push)。簡単なハックは次のようになります。

$fields = array( "key0" => "value0", "key1" => "value1");
//Get the first key
reset($fields);
$first_key = key($fields);
$first_value = $fields[$first_key];
unset($fields[$first_key]);

$fields[$first_key] = $first_value;

ここで動作することを確認してください。https://stackoverflow.com/a/1028677/1216976から取得したいくつかのソースコード

于 2012-08-05T16:43:47.167 に答える
2

を使用して0番目のキーを取得し、$keyを使用してarray_keys設定$valuearray_shift、次にを設定することができ$fields[$key] = $valueます。

またはあなたは次のような派手なことをすることができます

array_merge( array_slice($fields, 1, NULL, true),
             array_slice($fields, 0, 1, true)     );

これはテストされていませんが、正しい考えを持っています。

于 2012-08-05T16:42:46.010 に答える