40

配列内から配列キーを参照する方法はありますか? これは、コード形式でより理にかなっています。

$array=array(
  "Key1"=>array(
    "Value1",
    "Value2"
  ),
  "Key2"=>&$this['Key1']
);

私が欲しいのは$array['Key2']、と同じように出力すること$array['Key1']です。配列が作成された後に追加できますが$array['Key2']=&$array['Key1'];、可能であればすべてを 1 つのコード ブロックに保持したいと考えています。

参照に関するドキュメントを確認したほか、ここで同様の質問を提案したり、「php配列参照」を検索したりしました。

4

2 に答える 2

31

結局のところ、これに対する答えは「はい」です。ただし、一種のサブステートメントを使用し、現在のスコープに追加の参照変数が散らばっているため、整然とした構文ではありません。

次のコードを検討してください。

<?php

  $array = array(

    // Creates Key1 and assigns the value to it
    // A copy of the value is also placed in $ref
    // At this stage, it's not a reference
    "Key1"=>($ref = array(
      "Value1",
      "Value2"
    )),

    // Now Key2 is a reference to $ref, but not to Key1
    "Key2"=>&$ref,

    // Now everything is referenced together
    "Key1"=>&$ref

  );

これがエラーなしで機能したことに驚きましたが、実際に機能します-これが証明です。もちろん、これはしませんが、できます...

于 2012-04-27T22:05:27.887 に答える
1

変数をまだ初期化していないため、1 つのブロックで作成することはできません。クラス変数と同じです。そのようなことを行うには、何らかの方法で変数を作成し、そのリンクのみを使用する必要がありますが、メモリを使用するため、もう一度、質問に対する本当の答えは-不可能です:)

于 2012-04-27T21:50:46.360 に答える