2013-10-12 5 views
3

도움을 주셔서 감사합니다.이 문제가 남아 있습니다. 내가 설명 할게, 나는 이런 종류의 배열을 가지고있다.배열이 값 일치를 검색하고 값을 바꿉니다.

 
First Array 
-------------- 
Array 
(
    [2] => value7 
    [3] => value8 
    [4] => value9 
    [5] => value10 
    [6] => value11 
    [7] => value12 
    [8] => value13 
) 
 
Second Array 
-------------- 
Array 
(
    [0] => Array 
     (
      [0] => 5 
      [1] => 3 
      [2] => 6 
     ) 

    [1] => Array 
     (
      [0] => 8 
      [1] => 4 
      [2] => 7 
     ) 
) 

하고 원하는 결과 : (있는 경우 두 번째 배열 값 == 첫 번째 배열 키, 두 번째 배열 값을 변경) 나는 당신이 정확하게 당신에게 배열을 표시 생각하지 않는다

 
Array 
(
    [0] => Array 
     (
      [0] => value10 
      [1] => value8 
      [2] => value11 
     ) 

    [1] => Array 
     (
      [0] => value13 
      [1] => value9 
      [2] => value12 
     ) 
) 

답변

1

우리는 당신의 arrays이 같다고 가정하면 :

$keys1 = array_keys($array1); 
foreach($array2 as $innerKey => $innerArray) { 
    foreach($innerArray as $k => $val) { 
     if(in_array($val, $keys1)) { 
      $array2[$innerKey][$k] = $array1[$val]; 
     } 
    } 
} 
var_dump($array2); 

출력 :

array (size=3) 
    0 => 
    array (size=3) 
     10 => string 'value10' (length=7) 
     1 => string 'value12' (length=7) 
     2 => string 'value9' (length=6) 
    1 => 
    array (size=1) 
     0 => string '' (length=0) 
    2 => 
    array (size=1) 
     0 => string 'value8' (length=6) 

$array1 = array(
    2 => 'value7', 
    3 => 'value8', 
    4 => 'value9', 
    5 => 'value10', 
    6 => 'value11', 
    7 => 'value12', 
); 
$array2 = array(
    array(
     10 => 5, 
     1 => 7, 
     2 => 4, 
    ), 
    array(
     0 => '' 
    ), 
    array(
     0 => 3 
    )  
); 

다음이이 일을 할 것입니다

1

합니다. 이 질문에 대한 대답이 있습니까?

foreach($secondArray as $i => $v){ 
    if($firstArray[$v])$secondArray[$i] = $firstArray[$v]; 
} 
관련 문제