2014-02-20 2 views
0

에서 값이 내가 가지고 내가 foreach 문으로 반복하여이 작업을 얻었다 특정 키를 제거 => 배열 PHP

Array 
(
    [0] => Array 
     (
      [email] => [email protected] 
      [user_id] => 3 
     ) 

    [2] => Array 
     (
      [email] => [email protected] 
      [user_id] => 2 
     ) 

    [4] => Array 
     (
      [email] => [email protected] 
      [user_id] => 5 
     ) 

) 

아래와 같이 배열을 좀하고 싶습니다이

Array 
(
    [0] => Array 
     (
      [to_id] => 3 
      [email] => [email protected] 
      [user_id] => 3 
     ) 

    [2] => Array 
     (
      [to_id] => 2 
      [email] => [email protected] 
      [user_id] => 2 
     ) 

    [4] => Array 
     (
      [to_id] => 5 
      [email] => [email protected] 
      [user_id] => 5 
     ) 

) 

와 같은 배열, 하지만 난 그것을 할 단일 배열 기능을하고 싶습니다

+0

당신이 일 가능성 array_map와이를 달성 또는 array_walk 할 수있을 것입니다, 난 그냥 복사 프로세스 – mic

+0

와 함께 사용되는이 할 것 작품,하지만 나는 unset ($ array [ 'to_id']) 같은 것들이 필요하다. 루프를 통해 전체 배열에서 제거합니다. –

답변

4
$array = array_map(
    function (array $ar) { return array_diff_key($ar, array_flip(array('to_id'))); }, 
    $array 
); 

거기에 하나의 기능이 하나도 없습니다. 약간의 코드를 작성해야합니다. 또한 항상 배열을 반복해야합니다. 당신은 다른 방식으로 그 루프를 입어보고 다른 방법으로 키를 해제하는 동작을 입힐 수 있습니다. 필자는 직선 루프보다 더 효과적이거나 명확한 것은 없다고 생각하지는 않습니다. 그러나, 당신이 뭔가 더 멋진 것을 찾고 있다면 위와 같이 가라.

+0

에서 해당 키를 ommiting 새로운 배열로 기존의 배열을 복사합니다 폐쇄 –

+0

존재하지 않습니다. 'unset_key ($ array, 'to_id')'와 같은 함수를 쓸 수 있습니다. 그러나 기본적으로 존재하지는 않습니다. – deceze

+0

감사합니다, 다음 릴리스에서 그렇게 할 수있는 미리 정의 된 함수를 만들 PHP 커뮤니티에 알리는 방법 –

0
//This is the array name in which your data is stored. 
$my_array = array($array_data); 

// now lets get one level inside the array 
foreach($my_array as $key => $value){ 

// ok now unset un-wanted index from the array into a temporary array 
unset($value['to_id']); 

// overwrite our temporary array to original array keeping the keys same as before. 
$my_array[$key] = $value; 
//Thats it your Problem Solved :) 
} 

echo "<pre>"; 
print_r($my_array); 
echo "</pre>"; 
+0

내 질문에 foreach 함께 할 수 없습니다 –

+0

그러나 이것은 최선의 방법은 아니지만 작동하지 않을 수 있습니다. "보너스"섹션과 같은 관련없는 세부 정보는 피하십시오. –

관련 문제