値とキーの両方を配列に入れる方法
このコードを見てみましょう。
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
私は、このようなものを探しています。
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
これを行う関数はありますか?(array_push
ではこの方法では動作しませんので)
326
3
連想配列では、次のキーを決定する方法がないため、
array_push()
に相当するものはありません。次のキーを決定する方法がないので,次のキーを決定するためには
まさにPekkaが言った通りです。
別の方法としては、array_mergeをこのように使うこともできるでしょう。
しかし、私はPekka'の方法の方がはるかにシンプルであると思います。
私も同じものを探していたのですが、私が古い人間であるがゆえに、考え方が違うことに気づきました。私はBASICやPERLまで遡りますが、時々、PHPがいかに簡単かを忘れてしまいます。
私が作ったのは、データベースからすべての設定を取り出し、setkey, item (key) & value (value) の3つの列を、上記のように push を使わずに同じ key/value を使って settings という配列に配置する関数です。
とても簡単でシンプルですね。
前の記事
// すべての設定を取得 $settings=getGlobalSettings()です。
// ユーザーのテーマ選択を適用する $theme_choice = $settings['theme'];
... などなど ....
function getGlobalSettings(){
return $settings; }
となっています。
つまり、他の記事で説明されているように...を使用している場合、phpでは配列を"PUSH"する必要はありません。
キー => 値
また、配列を最初に定義する必要もありません。
$array=array()となります。
宣言もプッシュも必要ありません。ただ、$array[$key] = $value; を代入すれば、自動的にプッシュと宣言が同時に行われます。
セキュリティ上の理由から、(P)or (H)elpless (P)rotection、つまりProgramming for Dummies、つまりPHP.... hehehehe 私が意図したことにのみ、このコンセプトを使用することをお勧めします、と付け加えておきます。それ以外の方法では、セキュリティ上のリスクがあります。これで、私の免責事項ができました。