2016-10-31 2 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]私が必要な場合)

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

$losersが今はSを持っていることアレイキー

の配列での次の要素ひょっとすると、現在の$result要素を新しい$shiftedResに置き換える方法はありますか?何か$results[key($res)] = $shiftedResのようなもの?

答えて

1

$ res配列からシフトする代わりに、$ results配列から直接行います。

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

それ以外の場合は、あなたが推測したように配列のインデックスに要素を追加することができます。 –