2017-12-09 5 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] => 안녕하세요, 어떻게 지내 ) [헬기] => 배열 ( [0] => 안녕하세요 [1] => 안녕하세요 [2] => 안녕하세요, 어떻게 지내세요? ) )' 감사 –

+0

그래서'helo' 'hello'의 정확한 사본입니까? – Andreas

답변

2

는, 당신은, anonymous functionhelo 값을 선언 전역 변수로 현재 배열을 참조하고

을 필요로 뭔가를 반환해야
$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

관련 문제