我有多个阵列。我想检查重复数据。如果有重复值,我想忽略它并转到另一个值。我写了代码。但是,这是行不通的。请帮我。
这是我的数组
Array([1] => Array([STUDENT_ID] => 200301
[SUBJECT_NAME] => maths
[ASSIGNMENT_TITLE] => exam_1
[MARKS] => 25 )
[2] => Array([STUDENT_ID] => 200301
[SUBJECT_NAME] => maths
[ASSIGNMENT_TITLE] => exam_2
[MARKS] => 45 )
[3] => Array([STUDENT_ID] => 200301
[SUBJECT_NAME] => art
[ASSIGNMENT_TITLE] => exam_1
[MARKS] => 76 )
[4] => Array([STUDENT_ID] => 200301
[SUBJECT_NAME] => art
[ASSIGNMENT_TITLE] => exam_2
[MARKS] => 42 )
[5] => Array([STUDENT_ID] => 200302
[SUBJECT_NAME] => maths
[ASSIGNMENT_TITLE] => exam_1
[MARKS] => 71 )
[6] => Array([STUDENT_ID] => 200302
[SUBJECT_NAME] => maths
[ASSIGNMENT_TITLE] => exam_2
[MARKS] => 78 )
[7] => Array([STUDENT_ID] => 200302
[SUBJECT_NAME] => art
[ASSIGNMENT_TITLE] => exam_1
[MARKS] => 35 )
[8] => Array([STUDENT_ID] => 200302
[SUBJECT_NAME] => art
[ASSIGNMENT_TITLE] => exam_2
[MARKS] => 61 )
)
我编写了PHP代码
foreach($result as $item => &$rv) {
if($item == 0) {
$subjectName = $rv[SUBJECT_NAME];
echo '***'.$rv[SUBJECT_NAME];
}
if(strcmp($rv[SUBJECT_NAME] === $subjectName)) {
continue;
}else {
$subjectName = $rv[SUBJECT_NAME];
echo '---'. $rv[SUBJECT_NAME];
}
}
我希望像这张表一样创建
|-------+------------+-----------------+-----------------+
| | | maths | art |
|Seq No | Student Id |-----------------|-----------------|
| | | Exam 1 | Exam 2 | Exam 1 | Exam 2 |
|-------+------------+-----------------+-----------------+
| 1 | 200301 | 25 | 45 | 76 | 42 |
| 2 | 200302 | 71 | 78 | 35 | 61 |
|-------+------------+--------+--------+--------+--------|
答案 0 :(得分:0)
因此,您可以在temp数组中存储主题明智的值,然后检查该数组
<?php
$tmp_results = array();
foreach($result as $item => &$rv) {
if(!isset($tmp_results[$rv['SUBJECT_NAME']]))
{
echo '***'.$rv['SUBJECT_NAME'];
$tmp_results[$rv['SUBJECT_NAME']] = $rv;
}
}
//Also now $tmp_results contains only uniques subjetcs
print_r($tmp_results);
答案 1 :(得分:0)
我从您的代码中了解到,您需要一个包含源数组中所有主题的数组。您可以使用两个简单的PHP数组函数来完成此操作:
$subjects = array_unique(array_column($result,'SUBJECT_NAME'));