2014-04-06 5 views
1

하자 suppos 우리가값을 보유하고있는 다른 배열에서 key를 제거하는 방법?

이의이 있다고 가정하자 다음과 같은 두 가지 배열이 $array1

Array 
(
    [0] => Array 
     (
      [Name] => Jack 
      [Height] => 190 
      [Shoe Size] => 40 
     ) 

    [1] => Array 
     (
      [Name] => Rose 
      [Height] => 160 
      [Shoe Size] => 52 
     ) 

) 

내가해야 할 일이 지금

Array 
(
    [0] => Name 
    [1] => Shoe Size 
) 

$array2라고 가정하자라고 한 유지하는 것입니다 $array1에있는 키는 $array2 값으로 표시되므로 예상되는 출력은 다음과 같습니다.

Array 
(
    [0] => Array 
     (
      [Name] => Jack 
      [Shoe Size] => 40 
     ) 

    [1] => Array 
     (
      [Name] => Rose 
      [Shoe Size] => 52 
     ) 

) 

array_intersect 및 array_intersect_key 시도했지만 모두 실패했습니다. 누구든지이 일을하는 방법을 알고 있습니까?

+2

이 가장 효율적으로되지 않을 수도 있습니다,하지만 간단한 foreach 루프는 확실히 작동하지 않는 새로운 트릭 –

답변

2

당신은 무엇이 필요 array_flip

$array3 = array_flip($array2); 
foreach($array1 as &$a) { 
    $a = array_intersect_key($a, $array3); 
} 
+0

+1 감사 것입니다,하지만 난 당신의 개념을 얻고와 array_intersect_key입니다 그것으로 작업 할 수도 있습니다. – r3wt

+0

쉽게 – Ali

+0

@ChosenWann 예상대로 작동합니다. '$ array1'을 직접 수정하면 출력을 새로운 배열에 저장하려면'$ a ='를'$ newarray [] ='로 대체하십시오. – lafor

관련 문제