2017-12-09 16 views
1

現在の配列の中で配列変数を呼び出したい。このようなもの:PHPの配列内で配列変数を呼び出す

$conv= array (
"hello" => array("Hello", "Hi", "Hello, how are you?"), 
"helo" => array_merge($conv['hello']) 
); 
print_r($conv['helo']); 

どうすればいいですか?ありがとう。

+0

を通じてhello値のコピーを取得したいと思われるあなたのprint_r? – Andreas

+0

私の予想される出力は次のようになります。 'アレイ ( [ハロー] =>アレイ ( [0] =>こんにちは [1] =>こんにちは [2] =>こんにちは、お元気ですか ) ? [HELO] =>アレイ ( [0] =>こんにちは [1] =>こんにちは [2] =>こんにちは、どのようにあなたは? ) ) ' 感謝 –

+0

だからあなたの' helo' 'hello'とまったく同じですか? – Andreas

答えて

2

あなたが直接あなたの関数を定義したい場合は、配列を作成するとき、あなたは、anonymous functionとしてhelo値を宣言するグローバル変数として現在の配列を参照してください、あなたは

必要があるものを返却する必要があります
$conv = array(
"hello" => array("Hello", "Hi", "Hello, how are you?"), 
"helo" => function() { 
     global $conv; 
     return array_merge($conv['hello'], array("Bye", "See you")); 
    } 
); 
print_r($conv['helo']()); 

その関数から返された値が必要なときは、上記のような関数として呼び出す必要があります。$conv['helo']()$conv['helo']を呼び出すとret a Closureオブジェクト。あなたがコメントで求めているものによると

UPDATE

は、あなただけから期待される出力は何の機能

$conv = array(
"hello" => array("Hello", "Hi", "Hello, how are you?"), 
"helo" => function() { 
     global $conv; 
     return $conv["hello"]; 
    } 
); 
print_r($conv['helo']()); 
+0

こんにちはDrkey、 あなたのソリューションは問題なく、私にとってはうまくいくかもしれません。しかし、私はそれを上手にしたい。出来ますか? ありがとう –

+0

申し訳ありませんが、私はあなたが「上の道」で意味することを正確に理解しているかどうか分かりません。あなたは何をやると思いますか? – DrKey

+0

それは私が質問で言及したものです。 –

0

あなたが配列を構築する方法はおそらく不可能です。
'hello'を設定しようとすると、配列の末尾に関数;が作成されないため、 'hello'は未定義です。

「hello」を設定してから、「helo」にコピーする必要があります。

$conv = array("hello" => array("Hello", "Hi", "Hello, how are you?")); 

$conv["helo"] = $conv['hello']; 
print_r($conv['helo']); 

https://3v4l.org/PCJH7

+0

vqdaveさんは私の電話でそれを正しく取得できませんでした。 – Andreas

+0

問題はない、私はいつも同じ問題を抱えている! – vqdave

関連する問題