$ticket_details = Array (
18271 => Array (
0 => Array (
0 => 'Aziz',
1 => '2010-10-20 08:12:53'
),
1 => Array (
0 => 'Aziz' ,
1 => '2010-10-20 10:10:10'
),
2 => Array (
0 => 'Aziz',
1 => '2010-10-20 11:54:57'
) ,
3 => Array (
0 => 'gemma' ,
1 => '2010-10-20 23:47:41'
) ,
4 => Array (
0 => 'gemma' ,
1 => '2010-11-01 08:40:20'
) ,
5 => Array (
0 => 'Aziz' ,
1 => '2010-11-03 10:00:44'
) ,
6 => Array (
0 => 'Aziz' ,
1 => '2010-11-03 11:21:55'
) ,
7 => Array (
0 => 'Aziz' ,
1 => '2010-11-03 11:21:55'
) ,
8 => Array (
0 => 'gemma' ,
1 => '2010-11-03 11:21:55'
) ,
9 => Array (
0 => 'Aziz' ,
1 => '2010-11-03 11:21:55'
)
)
);
我想删除第 0 个元素的连续值。假设:"阿齐兹"连续出现 3 次。我想保留其中任何一个。再次"杰玛"连续 2 次出现。我想选择这两个中的任何一个。
输出应如下所示:
$ticket_details = Array (
18271 => Array (
0 => Array (
0 => 'Aziz',
1 => '2010-10-20 08:12:53'
),
1 => Array (
0 => 'gemma' ,
1 => '2010-11-01 08:40:20'
) ,
2 => Array (
0 => 'Aziz' ,
1 => '2010-11-03 11:21:55'
) ,
3 => Array (
0 => 'gemma' ,
1 => '2010-11-03 11:21:55'
) ,
4 => Array (
0 => 'Aziz' ,
1 => '2010-11-03 11:21:55'
)
)
);
我尝试了这些代码。但它仅适用于第一个连续值。不适用于其他值。
foreach ($ticket_details[18271] as $key => $value) {
if (isset($ticket_details[18271][$key+1])) {
if ($ticket_details[18271][$key][0] == $ticket_details[18271][$key+1][0]) {
$temp[$y] = $ticket_details[18271][$key+1][0];
} else {
$temp[$y] = $ticket_details[18271][$key+1][0];
}
if (isset($temp[$y-1]) && (($ticket_details[18271][$key-1][0] == $ticket_details[18271][$key][0]) &&
($ticket_details[18271][$key][0] == $ticket_details[18271][$key+1][0]))) {
$y = $y-1;
$temp[$y] = $ticket_details[18271][$key+1][0];
}
}
$y++;
}
print_r($temp);
只需跟踪使用的姓氏即可。
$temp = array();
$last_name_stored=''; // To keep track of last saved item
foreach ($ticket_details[18271] as $key => $value) {
if ($value[0] != $last_name_stored){ // check if already used
$temp[18271][] = $value;
$last_name_stored = $value[0]; // update the last saved item
}
}
print_r($temp);