Как проверить дубликаты правоустанавливающих отношение к и 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 3

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"
  }
}