2016-08-02 7 views
-1

フィールドの値が同じである配列だけを取得するためのスクリプトを作成しています。私のコードの下にチェックしてください。私はPHP開発の新機能ですので、私を助けてください。 コード:複数の値に基づいて複製配列を見つける方法は?

foreach($leads_details->result as $data){ 

    array_push($matchFullName,$data->fullName); 
    array_push($matchEmailName,$data->email); 
    array_push($matchCompanyName,$data->company); 

    if (in_array($data->fullName, $matchFullName) && in_array($data->email, $matchEmailName) && in_array($data->company, $matchCompanyName)) { 

    echo 'Same Full Name + Same Email ID + Same Company Name '; 
    array_push($samefullname_sameemailid_samecompany,$data2); 

    } 

    if (in_array($data->fullName, $matchFullName) && in_array($data->email, $matchEmailName) && (!in_array($data->company, $matchCompanyName))) {  

    echo 'Same Full Name + Same Email ID + Different Company Name '; 
    array_push($samefullname_sametemailid_differentcompany,$data2); 

    } 
} 

結果は、私が取得:

Array 
(
    [0] => stdClass Object 
     (
      [id] => 21748 
      [updatedAt] => 2016-07-27T12:05:56Z 
      [lastName] => Rennert   
      [fullName] => Angela Rennert 
      [email] => [email protected]   
      [createdAt] => 2016-05-05T09:59:37Z 
      [company] => Chronus 
      [firstName] => Angela 
     ) 

    [1] => stdClass Object 
     (
      [id] => 1173134 
      [updatedAt] => 2016-07-27T12:07:52Z 
      [lastName] => Rennert    
      [fullName] => Angela Rennert 
      [email] => [email protected]   
      [createdAt] => 2016-03-01T10:22:57Z 
      [company] => Chronus - Mentoring and Talent Development Solutions 
      [firstName] => Angela 
     ) 

    [1] => stdClass Object 
     (
      [id] => 1173134 
      [updatedAt] => 2016-07-27T12:07:52Z 
      [lastName] => Rennert   
      [fullName] => Angela Rennert 
      [email] => [email protected]   
      [createdAt] => 2016-03-01T10:22:57Z 
      [company] => Chronus - Mentoring and Talent Development Solutions 
      [firstName] => Angela 
     ) 

) 

は、今私はfullnameemailcompany名前が同じである配列値を見つける必要があります。

だから、結果は次のようにする必要があります: -

Array 
(
    [1] => stdClass Object 
     (
      [id] => 1173134 
      [updatedAt] => 2016-07-27T12:07:52Z 
      [lastName] => Rennert    
      [fullName] => Angela Rennert 
      [email] => [email protected]   
      [createdAt] => 2016-03-01T10:22:57Z 
      [company] => Chronus - Mentoring and Talent Development Solutions 
      [firstName] => Angela 
     ) 

    [1] => stdClass Object 
     (
      [id] => 1173134 
      [updatedAt] => 2016-07-27T12:07:52Z 
      [lastName] => Rennert   
      [fullName] => Angela Rennert 
      [email] => [email protected]   
      [createdAt] => 2016-03-01T10:22:57Z 
      [company] => Chronus - Mentoring and Talent Development Solutions 
      [firstName] => Angela 
     ) 

) 
+0

何か試しましたか?オブジェクトをループし、フィールドを比較し、キーを追跡します。 – NDM

+0

はい。あなたは私のことを理由としてマークしました。あなたはコードのために私に尋ねることができます – Addy

+0

上記のコードと条件を見てください – Addy

答えて

0

が、私はこれがあなたのために働くべきだと思い、説明のコメントをチェック -

$tempArray = $newArr = array(); 

foreach ($your_array as $val) { 
    // implode the current duplicate values in $temp array 
    $implodedVal = "{$val['lastName']}, {$val['fullName']}, {$val['company']}"; 
    // if they are not present in temp array means they are unique, 
    // so push it in $newArr 
    if (!in_array($implodedVal, $tempArray)) { 
    $newArr[] = $val; 
    } 
    $tempArray[] = $implodedVal; 
} 


var_dump($newArr); //this should be the required output 
0

こんにちは、私はサンプルスクリプトが1を下回ることを確認し共有してい。

$arr = array(1,2,3,4,4,5,8,9,3); 
$a = $b = array(); 

function w($k,$v) 
{ 
    global $a; 
    global $b; 

    if(!in_array($k,$a)) 
    { 
     $a[] = $k; 
    } 
    else 
    { 
     $b[] = $k; 
    } 
} 

array_walk($arr,"w"); 

print_r($a); 
echo "\n"; 
print_r($b); 
+0

'グローバル' <(o.O)> – NDM

関連する問題