2013-11-27 3 views
0

I이 결합 배열 구조를 갖는다 :PHP : 연관 배열에서 키와 값을 모두 얻는 방법?

$multiArray = array(
       'key1' => array(1, 2, 3, 4),     
       'key2' => array(5, 6, 7, 8), 
       'key3' => array(9, 10, 11, 12) 
      ); 

I 호출하면 $ 멀티 어레이 [ 'KEY1', I는 (정상) 값을 얻을 :

// Example 1 
$multiArray['key1']; 
//$multiArray only has [1, 2, 3, 4] 

방법이 있는가을 나는 내가 $또는 상황에 따라 다른 두 개의 키를 가질 수있는 $ multiArray [ 'key1']을 원한다고합니까?

이렇게 $ multiArray를 구조화 할 수 있지만 더 좋은 방법이 있는지 궁금합니다.

// Example 2 
$multiArray = array(
       'keyA' => array('key1' => array(1, 2, 3, 4)), 
       'keyB' => array('key2' => array(5, 6, 7, 8)), 
       'keyC' => array('key3' => array(9, 10, 11, 12)) 
      ); 
$multiArray['keyA']; 
// $multiArray is now what I want: ['key1' => [1, 2, 3, 4]] 
+1

키를 사용하여 배열에 이미 액세스 한 경우 키가 필요한 이유를 설명해 주시겠습니까? '$ arrKeys = array_keys ($ multiArray);'를 사용하여 모든 배열 키를 검색 할 수 있습니다. 도움이 될까요? – SaschaM78

+0

getArray() 함수에 대한 bcmcfc의 대답은 내가 찾고있는 것일 수 있다고 생각합니다. 나는 내가 원하는 것을 분명히 생각하지 않고 있었다. – Stephen

답변

1

당신은 이런 일을 할 수있는 :

function getArray ($multiArray, $key) { 
    return array($key => $multiArray[$key]); 
} 

또는

$result = array('key1' => $multiArray['key1']); 

조금 더 너에 대한 컨텍스트 e를 사용하면 유용 할 것이다. 사용 시점에서 요청한 키를 이미 알고있는 것 같습니다. 그렇지 않다면 array_keys을 사용해야 할 수도 있습니다.

+0

이 변수를 제어하지 않는 함수에 전달하려고하는데, 내가 요구 한 데이터 구조를 기대합니다. 나는 당신의 유틸리티 기능이 내가 찾고있는 것이라고 생각한다. – Stephen

1

나는 당신이 찾고 될 수 있습니다 어떻게 생각입니다 foreach :

$myArray = array('key1' => array(1, 2, 3), 'key2' => array(4, 5, 6)); 
$multiArray = array(); 
foreach ($myArray as $key => $value) { 
    // $key would be key1 or key2 
    // $value would be array(1, 2, 3) or array(4, 5, 6) 
    $multiArray[] = array($key => $value); 
} 
+0

배열을 분해하려고하지 않습니다. 구조 조정이 필요해. – Stephen

+0

도움이 될 수 있도록 제 답변을 업데이트했습니다. – aust

관련 문제