我有一个排序的键数组和值
Array
(
[1] => Array
(
[value] => 65
......
)
[0] => Array
(
[value] => 65
)
[5] => Array
(
[value] => 35
)
[4] => Array
(
[value] => 3
)
[2] => Array
(
[value] => 0
)
[3] => Array
(
[value] => 0
)
)
我搜索在此数组上运行的简单算法并返回地点数组 喜欢:
places['1'] = keys => array(1,0), value => 65
places['2'] = keys => array(5), value => 35
places['3'] = keys => array(4), value => 3
places['4'] = keys => array(2,3), value => 0
所以首先我们得到键1 + 0,值为65 等等.......
我尝试使用foreach
循环并添加大量if
条件,
我搜索一些简单的东西
感谢
答案 0 :(得分:1)
我假设你在最后一行是places['4']
。如果是这样,这应该这样做(否则你必须解释为什么有2
;)):
$placeIndex = 0;
$lastValue = null;
$places = array();
foreach($array as $key => $value) {
if($value['value'] === $lastValue) {
$places[$placeIndex]['keys'][] = $key;
}
else {
$placeIndex++;
$lastValue = $value['value'];
$places[$placeIndex] = array(
'keys' => array($key),
'value' => $lastValue
);
}
}