2016-10-31 4 views
0

지금까지 내가 결과에 각 선택의 첫 번째 요소를 제거하고 다시 위치를 이동하려면, results삽입이

foreach ($votes as $vote) { 
      $choices = array(); 
      Foreach ($vote->getVoteChoicesOrdered() as $choice) { 
       array_push($choices, $choice->getAnswer()->getID()); 
      } 
      array_push($results, $choices); 
     } 

나중에 multidimen 배열을 다차원 배열로 다시 배열을 이동 (그래서 나는 제거 할 수 있습니다 다음에 요소는 [0] I 필요하다면)

foreach ($results as $res) { 
       if (in_array(array_values($res)[0], $losers)) { 
        $shiftedRes = array_shift($res); 
       } 
      } 

$losers 내가 S를 가지고 배열 키 지금

의 배열 hift 배열, 어떻게 내가 현재 $result 요소를 새 $shiftedRes으로 대체 할 수 있을까요? $results[key($res)] = $shiftedRes과 같은 것?

답변

1

$ res 배열에서 이동하는 대신 $ 결과 배열에서 직접 이동하십시오.

foreach (array_keys($results) as $key) 
{ 
    if (in_array(array_values($results[$key])[0], $losers)) 
    { 
     $shiftedRes = array_shift($results[$key]); 
    } 
} 
+0

좋아요,하지만 현재의 키에 대해'$ result'를 업데이트하고 싶다면'$ results [$ key] = $ shiftedRes'만큼 간단합니까? – p3tch

+0

$ shiftedRes에 다른 것을 추가하지 않는다면 필요하지 않습니다. 코드 스 니펫이 함수 내부에서 왔고 $ results가 매개 변수로 전달되면 $ result를 반환하고 반환하거나 참조로 전달합니다. –

+0

그렇지 않으면 네가 추측 한대로 배열 인덱스에서 요소를 조작 할 수 있습니다. –