从我的SQL查询中,我将获得以下数组作为结果。这是我可以从SQL获得的最后一个结果。由于某些约束,我无法更改任何SQL。 我需要检查是否存在相同的id,如果它确实需要对它们进行计数并删除具有相同id的重复数组之一。 样本数组是
$array = array(
0 => array(
'id' => '17',
'status' => 1,
),
1 => array(
'id' => '18',
'status' => 1,
),
2 => array(
'id' => '21',
'status' => 1,
),
3 => array(
'id' => '5',
'status' => 2,
),
4 => array(
'id' => '18',
'status' => 1,
),
5 => array(
'id' => '22',
'status' => 5,
),
6 => array(
'id' => '6',
'status' => 1,
),
);
我需要检查它们是否有重复的id,如果是,则需要计算它们并删除其中一个重复项。我们需要保留数组结构。
最终结果应为
array(
0 => array(
'id' => '17',
'status' => 1,
'count'=1,
),
1 => array(
'id' => '18',
'status' => 1,
'count'=2,
),
2 => array(
'id' => '21',
'status' => 1,
'count'=1,
),
3 => array(
'id' => '5',
'status' => 2,
'count'=1,
),
4 => array(
'id' => '22',
'status' => 5,
'count'=1,
),
5 => array(
'id' => '6',
'status' => 1,
'count'==>1,
),
)
答案 0 :(得分:0)
您可以使用array_unique
功能执行此操作。
像这样使用它:
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a));
哪个输出:
Array ( [a] => red [b] => green )
答案 1 :(得分:0)
您可以通过这种方式进行检查,但仍会在数组中重复输入。
$ids = array();
foreach ($array as $key => $value)
{
$ids[] = $value['id'];
$count = array_count_values($ids);
}
for($i = 0; $i < count($array);$i++)
{
$array[$i]['count'] = $count[$array[$i]['id']];
}