2013-07-24 4 views
0

안녕하세요 그냥 PHP의 초보자와 당신의 도움이 심하게 필요합니다. 나는 실제로 두 개의 배열을 가지고 그것을 결합하고 싶습니다. ,PHP에서 동일한 키를 가진 두 개의 배열을 결합하십시오

[a1]=>(
     [gen]=>200, 
     [gen2]=>300, 
     [gen]=>300, 
     ) 
    [a2]=>(
     [gen2]=>100, 
     [gen3]=>600, 
     [gen3]=>200, 
     ) 

당신의 도움이 나는 중복이있는 경우를 제외하고 내 욕망의 결과를 얻을 수이 코드를 시도

주셔서 대단히 감사합니다

['a1']=>array(
    [0]=>200, 
    [1]=>300, 
    [2]=>300 
    ), 

    ['a2']=>array(
    [0]=>100, 
    [1]=>600, 
    [2]=>200 
    ) 

    ['a1']=>array(
    [0]=>gen, 
    [1]=>gen2, 
    [2]=>gen 
     ), 
    ['a2']=>array(
    [0]=>gen2, 
    [1]=>gen3, 
    [2]=>gen3 
     ) 

나는 나의 출력이 원하는 중복 된 값을 표시하지 않거나 키가 중복 된 경우 선택이 있으면 값을 추가해야합니다.

다시 도움 주셔서 감사합니다.

<?php 
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200)); 
$array2 = array(a1=>array('gen','gen2','gen'), a2=>array('gen2','gen3','gen3')); 
$result = array(); 
foreach($array1 as $k => $v) { 
$result[$k] = array_combine($array2[$k], $v); 
} 

print_r($result); 
?> 
+1

@DevlshOne, 그는 초보자라는 것을 인정하고, 그에게 여유를 줄이자. –

답변

1

array_combine 기능을 사용해야합니다.

$array1 = array(200,300,300); 
$array2 = array('gen','gen2','gen3'); 

$result = array_combine($array2, $array1); // $result will be your desired array 

그리고 이것을 foreach와 결합하여 작업을 완료 할 수 있습니다.

<?php 
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200)); 
$array2 = array(a1=>array('gen','gen2','gen3'), a2=>array('gen2','gen3','gen7')); 
$result = array(); 
foreach($array1 as $k => $v) { 
    $result[$k] = array_combine($array2[$k], $v); 
} 
print_r($result); 
?> 
+0

그냥 중복 키를 덮어 쓰기 때문에 표시하려는 키에 복제본이 있으면 어떻게해야합니까? 이것이 결합 기능을 사용할 수없는 주된 이유라는 것을 잊어 버렸습니다. 다시 한 번 감사드립니다 –

2

사용 array_combine()는 :

$keys = array(0=>'gen', 1=>'gen2', 2=>'gen3'); 
$values = array(0=>200, 1=>300, 2=>300); 
$a1 = array_combine($keys, $values); 

: 당신이 print_r() 출력을 제공 한 나는 당신의 배열을 재건. 그러나 이것은 당신을 시작해야합니다.

+0

dupplicate 키를 덮어 쓰기 때문에 내가 보여주고 자하는 키에 중복 된 것이 있다면 어떻게해야할까요? 다시 한 번 감사드립니다 –

0
여기

내 작업 예입니다 내 로컬 호스트에서

$arr1 = array(
    (0)=>200, 
    (1)=>300, 
    (2)=>300 
    ); 

$arr2=array(
    (0)=>100, 
    (1)=>600, 
    (2)=>200 
    ); 

    $a1=array(
    (0)=>'gen', 
    (1)=>'gen2', 
    (2)=>'gen3' 
     ); 
    $a2=array(
    (0)=>'gen2', 
    (1)=>'gen3', 
    (2)=>'gen7' 
     ); 


var_dump(array_combine($a1, $arr1)); 

을 테스트가.

+0

그냥 중복 키를 덮어 쓰기 때문에 표시하려는 키에 복제본이 있으면 어떻게해야합니까? 이것이 결합 기능을 사용할 수없는 주된 이유라는 것을 잊어 버렸습니다. 다시 한 번 감사합니다 –

+0

나는 당신의 대답을 바라 볼 것입니다 .... 조금만 기다리세요. – Hackerman

+0

배열의 전체적인 포인트는 독특한 열쇠를 가지고 있습니다 ... 미안 해요. – Hackerman

관련 문제