删除数组中相邻的相似值

DeL*_*eLe 2 php arrays duplicates

我有这样的数组

{
0: "abc"
1: "abc"
5: "abc"
6: "def"
7: "ghk"
8: "abc"
}
Run Code Online (Sandbox Code Playgroud)

我想删除adjecent相似的价值.就如

{
0: "abc"
6: "def"
7: "ghk"
8: "abc"
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用

$p = array_unique($array);
Run Code Online (Sandbox Code Playgroud)

但它变成了

{
0: "abc"
6: "def"
7: "ghk"
}
Run Code Online (Sandbox Code Playgroud)

我不想删除8:"abc",因为它不是相似的值.
我可以使用任何功能吗?谢谢 :)

Mar*_*ker 5

$myArray = array(
    0 => "abc",
    1 => "abc",
    5 => "abc",
    6 => "def",
    7 => "ghk",
    8 => "abc",
);

$previous = NULL;
$newArray = array_filter(
    $myArray,
    function ($value) use (&$previous) {
        $p = $previous;
        $previous = $value;
        return $value != $p;
    }
);

var_dump($newArray);
Run Code Online (Sandbox Code Playgroud)