<?php
$array = [
["key" => 0, "value" => 25],
["key" => 1, "value" => 25],
["key" => 2, "value" => 25],
["key" => 3, "value" => 33],
["key" => 4, "value" => 45],
["key" => 5, "value" => 66],
["key" => 6, "value" => 66],
["key" => 7, "value" => 66],
["key" => 8, "value" => 66],
["key" => 9, "value" => 55],
];
$r = [];
$lastKey = '';
foreach($array as $k => $v){
if(in_array($v['value'], array_column($r, 'value'))){
$lastKey = $v['key'];
}else{
if($lastKey && !in_array($lastKey, array_column($r, 'key'))){
end($r);
$r[] = [ 'key' => $lastKey, 'value' => $r[key($r)]['value']];
}
$r[] = [ 'key' => $v['key'] , 'value' => $v['value'] ];
$lastKey = $v['key'];
}
}
echo '<pre>';
print_r($r);
- Output for 7.1.25 - 7.1.30, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- <pre>Array
(
[0] => Array
(
[key] => 0
[value] => 25
)
[1] => Array
(
[key] => 2
[value] => 25
)
[2] => Array
(
[key] => 3
[value] => 33
)
[3] => Array
(
[key] => 4
[value] => 45
)
[4] => Array
(
[key] => 5
[value] => 66
)
[5] => Array
(
[key] => 8
[value] => 66
)
[6] => Array
(
[key] => 9
[value] => 55
)
)
preferences:
157.93 ms | 409 KiB | 5 Q