PHP数组删除重复的键值并只显示一个

Pin*_*wer 2 php multidimensional-array

Array
(
    [0] => Array
        (
            [user_id] => 78
            [post_id] => 3
            [post_user_added_id] => 2
        )

    [1] => Array
        (
            [user_id] => 76
            [post_id] => 8
            [post_user_added_id] => 16
        )

    [2] => Array
        (
            [user_id] => 78
            [post_id] => 9
            [post_user_added_id] => 12
        )

    [3] => Array
        (
            [user_id] => 76
            [post_id] => 9
            [post_user_added_id] => 15
        )

     [4] => Array
         (
             [user_id] => 77
             [post_id] => 9
             [post_user_added_id] => 15
         )

)
Run Code Online (Sandbox Code Playgroud)

这里的想法是,当有一个重复的user_id时,它只会显示一个?这是预期的结果:

 Array
 (
      [2] => Array
          (
             [user_id] => 78
             [post_id] => 9
             [post_user_added_id] => 12
           )

        [3] => Array
            (
                [user_id] => 76
                [post_id] => 9
                [post_user_added_id] => 15
            )

         [4] => Array
             (
                 [user_id] => 77
                 [post_id] => 9
                 [post_user_added_id] => 15
             )

    )
Run Code Online (Sandbox Code Playgroud)

之所以显示[2]键而不是[0]键或[1]键而不是[3],是因为我想获得重复键的底键.这有点难以解释,但我希望你理解我预期的场景或输出.

非常感谢您的帮助!谢谢!:)

d4r*_*nc3 5

试试这个 :

foreach($arr as $k => $v) 
{
    foreach($arr as $key => $value) 
    {
        if($k != $key && $v['user_id'] == $value['user_id'])
        {
             unset($arr[$k]);
        }
    }
}
print_r($arr);
Run Code Online (Sandbox Code Playgroud)