2016-07-05 11 views
-1

2つの配列このように、この場合はarray_replace_recursive()は機能しません。PHPで選択されたクエリから2つの配列がマージされました:UPDATE

Array 
(
    [0] => stdClass Object 
     (
      [Author] => 1 
      [totalComments] => 5 
      [commentsPoints] => 900 
      [commentDateDiffpoints] => 460 
     ) 

    [1] => stdClass Object 
     (
      [Author] => 2 
      [totalComments] => 4 
      [commentsPoints] => 720 
      [commentDateDiffpoints] => 24 
     ) 
    [2] => stdClass Object 
     (
      [Author] => 3 
      [totalComments] => 4 
      [commentsPoints] => 720 
      [commentDateDiffpoints] => 24 
     ) 

    [3] => stdClass Object 
     (
      [Author] => 18 
      [totalComments] => 4 
      [commentsPoints] => 720 
      [commentDateDiffpoints] => 24 
     ) 

) 

Array 
(
    [0] => stdClass Object 
     (
      [Author] => 1 
      [totalLikesGiven] => 5 
      [likesGivenOnTopicPoints] => 36 
      [likesGivenOnReplyPoints] => 108 
      [likesGivenOnBlogPoints] => 36 
      [DateDiffTopicpoints] => 1 
      [DateDiffReplypoints] => 3 
      [DateDiffBlogpoints] => 1 
     ) 

    [1] => stdClass Object 
     (
      [Author] => 3 
      [totalLikesGiven] => 1 
      [likesGivenOnTopicPoints] => 0 
      [likesGivenOnReplyPoints] => 0 
      [likesGivenOnBlogPoints] => 36 
      [DateDiffTopicpoints] => 0 
      [DateDiffReplypoints] => 0 
      [DateDiffBlogpoints] => 1 
     ) 

) 

私はPHPで同じことを行うことができますどのように助けてください、この

Array 
(
    [0] => stdClass Object 
     (
      [Author] => 1 
      [totalComments] => 5 
      [commentsPoints] => 900 
      [commentDateDiffpoints] => 460 
      [totalLikesGiven] => 5 
      [likesGivenOnTopicPoints] => 36 
      [likesGivenOnReplyPoints] => 108 
      [likesGivenOnBlogPoints] => 36 
      [DateDiffTopicpoints] => 1 
      [DateDiffReplypoints] => 3 
      [DateDiffBlogpoints] => 1 
     ) 
    [1] => stdClass Object 
     (
      [Author] => 2 
      [totalComments] => 4 
      [commentsPoints] => 720 
      [commentDateDiffpoints] => 24 
     ) 

    [2] => stdClass Object 
     (
      [Author] => 3 
      [totalComments] => 4 
      [commentsPoints] => 720 
      [commentDateDiffpoints] => 24 
      [totalLikesGiven] => 1 
      [likesGivenOnTopicPoints] => 0 
      [likesGivenOnReplyPoints] => 0 
      [likesGivenOnBlogPoints] => 36 
      [DateDiffTopicpoints] => 0 
      [DateDiffReplypoints] => 0 
      [DateDiffBlogpoints] => 1 
     ) 

    [3] => stdClass Object 
     (
      [Author] => 18 
      [totalComments] => 4 
      [commentsPoints] => 720 
      [commentDateDiffpoints] => 24 
     ) 

) 

LIKE結果が好きです。

+0

アレイ内のオブジェクトのヒント。ほとんどの場合、データベースの主キーが配列のキーとして使用されます。 あなたのオブジェクトをより迅速に見つけることができるように –

答えて

0

だけarray_replace_recursiveを使用します。

$finalArr = array_replace_recursive($arr1,$arr2); 

同様のthreadがあります。そういう意味でのさらなる質問があります。

+0

ありがとうそれはちょうどアップデートだけで動作し、$ arr1 = json_decode(json_encode($ arr1)、true)を使ってstdClassオブジェクトを両方の配列に変換します。 $ arr2 = json_decode(json_encode($ arr2)、true);最後に$ finalArr = array_replace_recursive($ arr1、$ arr2)を使用します。 – dvp

+0

array_replace_recursive()関数は、最初と2番目の両方の配列に一意の値がある場合、両方のレコードを追加していないときは機能しません。 – dvp

+0

それでは、 'array_merge_recursive'の場合は – Thamilan

-2

配列マージPHP関数を使用します。 PHP array merge function

+0

リンクのみの回答はお勧めできません。 –

+0

@Dagon、ok。さらに2つのマイナスがあり、あなたの目標を達成しました –

関連する問題