Покрокове порівняння осередків багатовимірного масиву із записом результатів у таблицю, PHPClub - клуб
Покрокове порівняння осередків багатовимірного масиву із записом результатів у таблицю
Даний масив (таблиця), що містить у кожному рядку набір деякої кінцевої множини символів (наприклад, A, B, C, D і E).
Потрібно послідовно порівнювати кожен рядок масиву з кожним іншим рядком масиву. Якщо збігається хоч би один символ, писати 1, якщо не збігається нічого, писати 0.
Отже, потрібно взяти ПЕРШИЙ рядок (А, А, B) і порівняти його з 2-м рядком (A), 3-й (A, B, C), 4-й. n-й Потім береться 2-й рядок і знову з 3-го, 4-го і т.д. - Тобто. з усіма які НИЖЧЕ (можна і з усіма взагалі, починаючи з 1-ї, але тоді матриця порівняння буде не «половинчаста», а повна, симетрична – добре мені зійде і так, якщо це складно…) Потім 3-я з 4-ї, 5-ї, 6-ї і т.д. …. В кінці передостанній рядок з останнім рядком.
При цьому результат порівняння $a щоразу повинен записуватися окремо в комірку НОВОЇ таблиці РЕЗУЛЬТАТІВ ПОРІВНЯННЯ і якось там ПОТІМ ще повинен багаторазово підсумовуватися, тому що таких самопорівнянь таблиць буде багато… Для чого це взагалі потрібно? Така операція типу показує статистичну міру спорідненості чи генетичної близькості вмісту рядків друг з одним.
Тобто. вийде повинно щось на зразок
1 - перша з другої 1 - перша з третьою 1 - перша з четвертою 0 - перша з п'ятою (жодного загального елемента) і т.д.
У результаті маємо щось на кшталт:
1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1
Поки що для початку прошу пояснити хоча б як порівнюють два рядки такого масиву. Мені здається, завдання не зовсім тривіальне.
PS: Я не проф. програміст PHP, я просто намагаюся вирішитиконкретне завдання.
Як порівнювати рядки, так щоб знайти хоч один загальний елемент, я вже придумав. Потрібно взяти ПЕРЕКЛАД двох масивів, а потім підрахувати кількість загальних елеметів і подивитися чи більше воно нуля
echo " Це число спільних елементів є ".count(array_intersect($a1,$a2));
Але як послідовно порівнювати рядки, поки що не знаю.