Как проверить дубликаты правоустанавливающих отношение к и Alt идентификатор массива
Это мой массив. Этот массив очень большой - более 1000 записей. Я написал кое-какой код.
Он будет работать без дубликатов только дляALT_ID
. TITLE
покажет с дубликатом.
Как проверить дубликаты TITLE
, относящиеся к и ALT_ID
массива.
Я хочу знать, как проверить дубликаты заголовка, относящиеся к идентификатору массива.
Array
(
[1] => Array
(
[TITLE] => Business Management
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Coursework
[MARKS] => 56.00
)
[2] => Array
(
[TITLE] => Business Management
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 61.00
)
[3] => Array
(
[TITLE] => Communication Skills in English
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 45.00
)
[4] => Array
(
[TITLE] => Communication Skills in English
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Course Work
[MARKS] => 57.00
)
[5] => Array
(
[TITLE] => Digital Circuits and PC Hardware
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 20.00
)
[6] => Array
(
[TITLE] => Digital Circuits and PC Hardware
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Coursework
[MARKS] => 67.00
)
[7] => Array
(
[TITLE] => Elements of Electronics
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 62.00
)
[8] => Array
(
[TITLE] => Elements of Electronics
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Course Work
[MARKS] => 79.00
)
[9] => Array
(
[TITLE] => Introduction to Databases Systems
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Coursework
[MARKS] => 49.00
)
[10] => Array
(
[TITLE] => Introduction to Databases Systems
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 34.00
)
[11] => Array
(
[TITLE] => Mathematics for Computing & Business
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Course Work
[MARKS] => 82.00
)
[12] => Array
(
[TITLE] => Mathematics for Computing & Business
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 87.00
)
[13] => Array
(
[TITLE] => Personal Computer Based Applications
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Course Work
[MARKS] => 73.00
)
[14] => Array
(
[TITLE] => Visual Basic Programming
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Exam
[MARKS] => 56.00
)
[15] => Array
(
[TITLE] => Visual Basic Programming
[LAST_NAME] => Stu2455
[ALT_ID] => 2003455
[STUDENT_ID] => 2492
[ASSIGNMENT_TITLE] => Coursework
[MARKS] => 62.00
)
)
Ниже я написал PHP код
$tmp_results = array();
foreach($result as $item => &$rv) {
if(!isset($tmp_results[$rv['ALT_ID']]))
{
$output .= "<tr><td>" . $rv['ALT_ID'] . "</td>";
$tmp_results[$rv['ALT_ID']] = $rv;
}
if(!isset($tmp_results[$rv['TITLE'] || $rv['ALT_ID']]))
{
$output .= "<td>". $rv['TITLE'] ."</td><tr>";
$tmp_results[$rv['TITLE']] = $rv;
}
}
Я хочу знать, как проверить дубликаты заголовок, относящийся к идентификатору массива.
2 ответа:
Попробуйте это
$tmp_results = array(); foreach($result as $item => &$rv) { if(!isset($tmp_results[$rv['ALT_ID']])) { $output .= "<tr><td>" . $rv['ALT_ID'] . "</td>"; } $currentTitle = $rv['TITLE']; $titles = isset($tmp_results[$rv['ALT_ID']]) ? $tmp_results[$rv['ALT_ID']] : array(); if(array_search($currentTitle, $titles) === false) { // Write you business logic as Title with respect to your ALT_ID will be unique here. $output .= "<td>". $currentTitle ."</td><tr>"; array_push($titles,$currentTitle); $tmp_results[$rv['ALT_ID']] = $titles; } }
Вот как вы могли бы преодолеть эту проблему. Это может тебе помочь. Вы можете заменить имена столбцов по своему усмотрению
$arr = [ 'key' => ['id' => 1, 'name' => 'basheer'], 'key3' => ['id' => 2, 'name' => 'salman'], 'key2' => ['id' => 1, 'name' => 'basheer'], ]; $duplicates = []; $filterd = array_filter($arr, function($v) use (&$duplicates, $arr) { //check within duplicate items if(in_array($v['id'], $duplicates) && in_array($v['name'], $duplicates)) { return false; } //move on to push duplicate items within array array_map( function($v2) use ($v, &$duplicates) { if($v2['id'] === $v['id'] && $v2['name'] == $v['name']) { $duplicates[] = $v['id']; $duplicates[] = $v['name']; } }, $arr); return $v; }); var_dump($filterd); array(2) { ["key"]=> array(2) { ["id"]=> int(1) ["name"]=> string(7) "basheer" } ["key3"]=> array(2) { ["id"]=> int(2) ["name"]=> string(6) "salman" } }