2017-11-20 14 views
0

laravelコレクションに特定のインデックスの後にアイテム(配列)を挿入したいとします。私はこのコードを使用しています:laravelの特定のインデックスの後にコレクションに配列を挿入します。

foreach ($posts as $key => $post) { 
     foreach ($friendsArray as $date => $friend) { 
     if ($post->updated_at->format('Y-m-d') == $date) { 
      $posts->push($friend); 
      $friendsArray->forget($date); 
     } 
     } 
    } 

    dd($posts); 

結果は以下の通りです:

#items: array:9 [▼ 
     0 => Post {#862 ▶} 
     1 => Post {#863 ▶} 
     2 => Post {#864 ▶} 
     3 => Post {#865 ▶} 
     4 => Post {#866 ▶} 
     5 => Post {#867 ▶} 
     6 => Post {#868 ▶} 
     7 => Post {#869 ▶} 
     8 => Collection {#956 ▶} 
    ] 

問題は、最後に値を挿入するコレクションのヘルププッシュですが、私は、特定のインデックスの後に挿入します。例えば、私は2番目の配列の後にそれを知りたいと思う。

foreach ($posts as $key => $post) { 
     foreach ($friendsArray as $date => $friend) { 
     if ($post->updated_at->format('Y-m-d') == $date) { 
      $post->friend = $friend; 
     } 
     } 
    } 

    dd($posts); 
+0

任意のcondtionチェックで挿入する場合は、条件を単純にチェックして別の配列に配置し、その配列全体を挿入します。 – Rits

答えて

0

おかげでこれを試してみてください。

例:

// $offset as the postition 
// 0 because you don't want to remove any items 
// $friend as replacement 
$posts->splice($offset, 0, $friend); 

documentationを参照してください。

+0

が機能していない、投稿に変更がありません –

+0

最初に2番目のforeachを削除してから、配列を渡してテストして友人にテストしてください。 –

+0

2番目のforeachを削除してからテストしてください。 –

0

あなたはsplice(int $offset, int|null $length = null, mixed $replacement = [])メソッドを使用することができます。事前

+0

ありがとうございましたThomas Vander Veenの魅力のような仕事 –

+0

私はお手伝いします。これを回答としてマークして他の人に見せることができますか? –

関連する問題