2013-09-23 26 views
6

私は3つの「キーと値」のペアを持つ複数のオブジェクト(たとえば3つのオブジェクト)を持つ1つの配列を持っています。オブジェクトをPHP内の配列内に置き換えよう

$PredefinedResultは次のようなものです:

[ 
    { 
     "EffectiveStatusId":0, 
     "EffectiveStatus":"abc", 
     "RecordCount":0 
    }, 
    { 
     "EffectiveStatusId":0, 
     "EffectiveStatus":"def", 
     "RecordCount":0 
    }, 
    { 
     "EffectiveStatusId":0, 
     "EffectiveStatus":"ghi", 
     "RecordCount":0 
    } 
] 

私が持っているような値で$MainResultを名前付きオブジェクトの別の配列:

[ 
    { 
     "EffectiveStatusId":1, 
     "EffectiveStatus":"abc", 
     "RecordCount":7 
    }, 
    { 
     "EffectiveStatusId":6, 
     "EffectiveStatus":"def", 
     "RecordCount":91 
    } 
] 

期待される結果:

私は交換したいです同様のオブジェクトはのオブジェクトで$PredefinedResultの中にあります

[ 
    { 
     "EffectiveStatusId":1, 
     "EffectiveStatus":"abc", 
     "RecordCount":7 
    }, 
    { 
     "EffectiveStatusId":6, 
     "EffectiveStatus":"def", 
     "RecordCount":91 
    }, 
    { 
     "EffectiveStatusId":0, 
     "EffectiveStatus":"ghi", 
     "RecordCount":0 
    } 
] 

私が試した何を:とは次のようになりたい

私はこのコードを試してみましたが、それは私に望ましい結果を与えていません。

$FinalResult = array_replace($PredefineResult,$MainResult); 

上記のように期待結果を得る方法を教えてもらえますか?

+0

JSONだarray_mapは、ここではOKな選択のように思えます。前にそれを実際にデコードしていますか? –

+0

@AmalMurali:いいえ、誰もが望む結果を全員が見ることができるようにフォーマットしました。実際はオブジェクトの配列です。 –

答えて

2

これには「組み込み」機能はありません。手動でループし比較する必要があります。

$PredefinedResult = array_map(function($a) use($MainResult){ 
    foreach($MainResult as $data){ 
     if($a->EffectiveStatus === $data->EffectiveStatus){ 
      return $data; 
     } 
    } 
    return $a; 
}, $PredefinedResult); 

DEMO:http://codepad.viper-7.com/OHBQK8

+0

再生してくれてありがとうございます......働いています...... –

+0

うれしいです。 –

+0

デモにアクセスできなくなりました。 –

2

アレイを繰り返し、以下のように値を手動で比較してください。

+0

私はこれが仕事になるとは思わない。 'array_unique()'が 'RecordCount!= 0'のオブジェクトだけを選択する方法を教えてください。 'RecordCount == 0'のObjectを' RecordCount!= 0'に置き換える必要があるのを見てください。 –

+1

あなたのキーは各配列のための 'EffectiveStatus'と思われます。それからあなたはforeach()と一緒に行かなければなりません。それに応じて私の答えを更新しましょう。 – Jeyasithar

+0

私は自分の答えを編集しました。これがうまくいきたいです。 – Jeyasithar

関連する問題