Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вывод в таблицу
Nameless  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 42715
На форуме: 8 месяцев, 19 дней
Карма:




Здравствуйте! Помогите, пожалуйста, сделать таблицу такого вида
user posted image

1 -5 - названия файлов, на пересечении ячеек выводится процент совпадения файлов относительно друг друга.
Как и какими средствами это лучше всего реализовать?

Код обработчика:
<?php
$aFileName = array(
'1.txt',
'2.txt',
'3.txt',
'4.txt',
'5.txt',
);
//запись файлов в массив

function CalculatePercentageMatches ($sFile1, $sFile2) {
$sOpen1 = file ($sFile1, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$sOpen2 = file ($sFile2, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$sFind = array_intersect ($sOpen1, $sOpen2);
print_r($sFind);
$sCountFile = count ($sOpen1);
$sCountFind = count ($sFind);
$sResult = round(($sCountFind/$sCountFile)*100, 2);

return $sResult;
}; //расчет процента совпадений

if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 0;
while ($x < $nCount -1):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x+1];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
endwhile;
};
//сравнить 1 с 2, 2 с 3, 3 с 4, 4 с 5
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 1;
while ($x < $nCount +1):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x-1];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)){
break;
}
// сравнить 2 с 1, 3 с 2, 4 с 3, 5 с 4
endwhile;
};
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 2;
while ($x < $nCount +2):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x-2];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)){
break;
}
// сравнить 3 с 1, 4 с 2, 5 с 3
endwhile;
};
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 3;
while ($x < $nCount +2):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x-3];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)){
break;
}
// сравнить 4 с 1, 5 с 2
endwhile;
};
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 4;
while ($x < $nCount +2):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x-4];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)){
break;
}
// сравнить 5 с 1
endwhile;
};
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 0;
while ($x < $nCount +2):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x+2];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)-2){
break;
}
// сравнить 1 c 3, 2 с 4, 3 с 5
endwhile;
};
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 0;
while ($x < $nCount +2):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x+3];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)-3){
break;
}
// сравнить 1 с 4, 2 с 5
endwhile;
};
echo nl2br("\n ");
if (isset ($aFileName) && is_array ($aFileName)) {
$nCount = count ($aFileName);
$x = 0;
while ($x < $nCount +2):
$sFileName1 = $aFileName[$x];
$sFileName2 = $aFileName[$x+4];
$sPercentageMatches = CalculatePercentageMatches ($sFileName1, $sFileName2);
echo ('Процент совпадений '.$sFileName1.', '.$sFileName2.' равен '.$sPercentageMatches.'%<br>');
$x++;
if ($x == count ($aFileName)-4){
break;
}
// сравнить 1 с 5
endwhile;
};
echo nl2br("\n ");

?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 12 дней


ужсссссс...

Цитата
Как и какими средствами это лучше всего реализовать?

php+html

2500 руб. напишу код, если время канешь найду....


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
[x] Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









<?php

$aFileName = array(
'1.txt',
'2.txt',
'3.txt',
'4.txt',
'5.txt',
);


// read content
$content = array();
foreach ($aFileName as $file) {
$content[] = file_get_contents($file);
}

// calculate
$table = array_fill(0, count($aFileName), array_fill(0, count($aFileName), ''));
for ($i=0; $i<count($aFileName); $i++) {
for ($j=0; $j<count($aFileName); $j++) {
if ($i == $j || $table[$i][$j] !== '') continue;
similar_text($content[$i], $content[$j], $p);
$table[$i][$j] = round($p, 0) . '%';
}
}


// print
echo '<table colspacing=5 cellpadding=5 border=1>';
for ($i=count($table)-1; $i>=0; $i--) {
echo '<tr><td>' . $aFileName[$i] . '</td>';
for ($j=0; $j<count($table); $j++) {
echo '<td>' . $table[$i][$j] . '</td>';
}
echo '</tr>';
}
echo '<tr><td></td>';
for ($i=0; $i<count($table); $i++) {
echo '<td>' . $aFileName[$i] . '</td>';
}
echo '</tr>';
echo '</table>';


Ну а разукрасишь табличку уже сам.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 12 дней


ну он же...

user posted image

сравнивал массивы с array_intersect() ...

разные данные выходят..


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса