2010-11-29 5 views
4

나는 많은 답변을 알고 있지만 올바르게 이해할 수는 없습니다. 나는 다음과 같은 배열과 내가 해봤 있습니다PHP에서 다차원 배열을 형성하기 위해 배열을 결합하십시오.

$a = array (0 => '1421' , 1 => '2241'); 
$b = array (0 => 'teststring1' , 1 => 'teststring2'); 
$c = array (0 => 'teststring3' , 1 => 'teststring4'); 
$d = array (0 => 'teststring5' , 1 => 'teststring6'); 

$e = array_combine($a, array($b,$c,$d)); 

을하지만이와 나는 오류 array_combine() [function.array-combine]: Both parameters should have an equal number of elements를 얻을.

$a의 배열 값이 키가 아니기 때문에 알 수 있습니다. 당신이 제어 할 수있는 경우 배열을 만드는 동안

array(2) { 

    [1421]=>array([0] => teststring1 
       [1] => teststring3 
       [2] => teststring5 
       ) 

    [2241]=>array([0] => teststring2 
       [1] => teststring4 
       [2] => teststring6 
       ) 


} 

답변

2

당신이 만드는 것과 같은 방법으로 생성한다 : 나는 내가 그것을 이런 식으로 뭔가를 볼 수 있도록 도움을 줄 수 대답에 약간의 도움을받을 수 있는지 확인하기 위해 여기 간다 이유 :하지 않으면

$a = array ('1421' ,'2241'); 
$b = array ('teststring1', 'teststring3', 'teststring5'); 
$c = array ('teststring2', 'teststring4', 'teststring6'); 

$e = array_combine($a, array($b,$c)); 

것은, 당신은 그들을 루프가 있습니다

$result = array(); 
$values = array($b, $c, $d); 

foreach($a as $index => $key) { 
    $t = array(); 
    foreach($values as $value) { 
     $t[] = $value[$index]; 
    } 
    $result[$key] = $t; 
} 

DEMO

+0

+1 나를 위해 codepad :) .. – pinaki

+0

나는 이걸 편집하고 이것과 비슷한 루프를 발견했다. 편집을 지웠으며 해결 된 것으로 표시합니다. 내가 작성한 것보다 더 좋아하기 때문에 루프를 사용했습니다. 감사! 추신. 내가'array_fill.'을 사용했기 때문에 그들을 제어하지 못했다는 것에 대한 덧붙여 줘서 고마워. – Tek

0

다음은 정수 키를 처리 할 새로운 버전의 array_merge_recursive입니다. 어떻게 진행되는지 알려주세요.

$a = array (0 => '1421' , 1 => '2241'); 
$b = array (0 => 'teststring1' , 1 => 'teststring2'); 
$c = array (0 => 'teststring3' , 1 => 'teststring4'); 
$d = array (0 => 'teststring5' , 1 => 'teststring6'); 

$e = array_combine($a, array_merge_recursive2($b, $c, $d)); 
echo "<pre>"; 
print_r($e); 



function array_merge_recursive2() { 
    $args = func_get_args(); 
    $ret = array(); 

    foreach ($args as $arr) { 
     if(is_array($arr)) { 
      foreach ($arr as $key => $val) { 
       $ret[$key][] = $val; 
      } 
     } 
    } 
    return $ret; 
} 
관련 문제