我有一个数组
$results = array(
array(value => 100, ID => 333, sec => 200),
array(value => 200, ID => 333, sec => 300),
array(value => 300, ID => 555, sec => 400),
array(value => 400, ID => 555, sec => 500),
array(value => 500, ID => 333, sec => 600)
);
仅当前一个ID与当前数组ID相同时,才通过组合相似的ID来创建新数组。值始终与第一个数组值相同,sec始终与具有相似ID的最后一个数组值相同。
我不知道检查前一个数组ID值的方法与当前检查值的数组相同。希望足够清楚
通过
创建新数组$display = array();
foreach($results as $value) {
if(isset($display[$value[ID]])) {
$temp = $display[$value[ID]];
$temp[sec] = $value[sec];
$display[$value[ID]] = $value;
} else {
$display[$value[ID]] = $value;
}
}
$display = array_values($display);
并且那会创建$ display为
Array
(
[0] => Array
(
[value] => 100
[ID] => 333
[sec] => 600
)
[1] => Array
(
[value] => 300
[ID] => 555
[sec] => 500
)
)
但我想让它成为
Array
(
[0] => Array
(
[value] => 100
[ID] => 333
[sec] => 300
)
[1] => Array
(
[value] => 300
[ID] => 555
[sec] => 500
)
[2] => Array
(
[value] => 500
[ID] => 333
[sec] => 600
)
)
答案 0 :(得分:1)
这似乎有效
<?php
$results = array(
array('value' => 100, 'ID' => 333, 'sec' => 200),
array('value' => 200, 'ID' => 333, 'sec' => 300),
array('value' => 300, 'ID' => 555, 'sec' => 400),
array('value' => 400, 'ID' => 555, 'sec' => 500),
array('value' => 500, 'ID' => 333, 'sec' => 600)
);
$display = array();
foreach($results as $id => $value) {
if($id>0 AND $display[count($display)-1]['ID'] == $value['ID']) {
$display[count($display)-1]['sec'] = $value['sec'];
} else {
$display[] = $value;
}
}
print_r($display);
结果
Array
(
[0] => Array
(
[value] => 100
[ID] => 333
[sec] => 300
)
[1] => Array
(
[value] => 300
[ID] => 555
[sec] => 500
)
[2] => Array
(
[value] => 500
[ID] => 333
[sec] => 600
)
)