<?php
$array = array(
41 => Array (
'name' => 'London ',
'company' => 'nhyt6t',
'top25_1' => 8.75912088
),
42 => Array (
'name' => 'Manchester',
'company' => 'gtr4rf',
'top25_1' => 6.56758398
),
43 => Array (
'name' => 'Leeds',
'company' => 'de3wsd6',
'top25_1' => 7.58675398
),
44 => Array (
'name' => '--- ',
'company' => 'nhyt6t',
'top25_2' => 1
),
45 => Array (
'name' => '---',
'company' => 'gtr4rf',
'top25_2' => 1
),
46 => Array (
'name' => '??',
'company' => 'de3wsd6',
'top25_3' => 7.58675398
)
);
$result = array_reduce(array_keys($array), function($c, $x) use ($array)
{
if(!isset($c[$key = end(array_keys($array[$x]))]))
{
$c[$key] = array('start'=>$x, 'end'=>$x);
}
else
{
$c[$key]['end'] = $x;
};
return $c;
}, array());
preferences:
36.49 ms | 402 KiB | 5 Q