2015-02-26 1 views
0

Получил странную ситуацию, и я не знаю, как это понять. Посмотрим, можете ли вы дать мне подсказку!Как сравнить только определенные ячейки из строк, хранящихся в массиве

Я построил массив строк в его содержании, как это и хочу удалить дубликаты:

эха $ nodup_filter [1];

<tr> 
<td>29/06/2015</td> 
<td>09:00</td> 
<td>29/06/2015</td> 
<td>12:00</td> 
<td>3</td> 
<td>code 1</td> 
<td>1007 Additional information 5</td> 
<td>109 Additional information 6</td> 
<td>Additional information 7</td> 
<td>Additional information 8</td> 
<td> </td> 
</tr> 

эхо $ nodup_filter [2];

<tr> 
<td>12/02/2015</td> 
<td>16:00</td> 
<td>14/04/2015</td> 
<td>18:00</td> 
<td>2</td> 
<td>Code 2</td> 
<td>Additional information 1</td> 
<td>Additional information 2</td> 
<td>Additional information 3</td> 
<td>Additional information 4</td> 
<td> </td> 
</tr> 

эхо $ nodup_filter [3];

<tr> 
<td>29/06/2015</td> 
<td>09:00</td> 
<td>29/06/2015</td> 
<td>12:00</td> 
<td>3</td> 
<td>code 1</td> 
<td>1007 Additional information 5</td> 
<td>109 Additional information 6</td> 
<td>Additional information 7</td> 
<td>Additional information 8</td> 
<td> </td> 
</tr> 

И так далее, и так далее ...

То, что я хочу, чтобы сравнить весь массив, но только с шестой ячейки до конца каждой позиции массива.

Я хочу, чтобы сравнить:

<td>code 1</td> 
<td>1007 Additional information 5</td> 
<td>109 Additional information 6</td> 
<td>Additional information 7</td> 
<td>Additional information 8</td> 
<td> </td> 

С этим:

<td>Code 2</td> 
<td>Additional information 1</td> 
<td>Additional information 2</td> 
<td>Additional information 3</td> 
<td>Additional information 4</td> 
<td> </td> 

И с этим:

<td>code 1</td> 
<td>1007 Additional information 5</td> 
<td>109 Additional information 6</td> 
<td>Additional information 7</td> 
<td>Additional information 8</td> 
<td> </td> 

И если есть совпадение, удалить дубликаты позиции массива , Как вы видите $ nodup_filter [1]; и $ nodup_filter [3]; получил ту же информацию из своей шестой ячейки до конца строки, поэтому один из них ($ nodup_filter [1] или $ nodup_filter [3]) должен быть удален. И затем продолжайте компиляцию со следующей позицией массива.

Заранее благодарим за вашу помощь и время.

+0

показать нам РНР 'array' содержание, у вас есть только общая таблица 'html' – Saqueib

+0

Элементы' $ nodup_filter', такие как строки, или каждый элемент, состоящий из других элементов (т. е. одна строка для каждой ячейки)? – Giorgio

+0

@Giorgio Большое спасибо за ваш ответ, $ nodup_filter только формируется одна ломаная линия: 29/06/2015 09:00 29/06/2015 12:00 код 1 +1007 Дополнительная информация 5 109 Дополнительная информация 6 Дополнительная информация 7 Дополнительная информация 8 – user3321425

ответ

0

Поскольку у вас в массиве вы можете петлю и проверить содержание только с шестой ячейкиtext, один из способов сделать это будет этот

$unique_array = array(); 
foreach($data as $k=>$v) { 
    // assuming $data[$k][6] sixth cell 
    if(in_array($data[$k][6], $unique_array)) { 
     //remove duplicate 
     unset($data[$k]); 
    }else { 
    //Push it to final array 
    array_push($unique_array, $v); 
    } 
} 
+0

Большое спасибо за ваш ответ! ну, я хочу проверить содержимое с шестой ячейки до конца. Я пытаюсь сравнить содержимое ячеек 6-7-8-9-10-11 от $ nodup_filter []; для удаления всей позиции массива есть позиция, где 6-7-8-9-10-11 точно совпадает с другим $ nodup_filter []; должность . Я попытаюсь понять это с помощью вашего кода. – user3321425

Смежные вопросы