WBS
Новичок
Необходимо проверить, все ли столбцы матрицы (двумерный массив) различны.
Для этого я использую две функции.
В моем случае матрица состоит только из 1 и 0. Интересует наиболее эффективный (быстрый) алгоритм.
Для этого я использую две функции.
PHP:
<?
function mtr_transpose ($arr) {
// транспонирует матрицу $arr (двумерный массив)
foreach ($arr as $i => $row)
foreach ($row as $j => $val)
$arr_tr[$j][$i] = $val;
return $arr_tr;
}
function mtr_row_unique_check ($arr) {
// проверяет, все ли строки в матрице $arr (двумерный массив) разные
return sizeof(array_unique(array_map("implode", $arr)))==sizeof($arr) ? TRUE : FALSE;
}
$arr_mtr = array(
5 => array(0,0,1,1,1,0,0,0,1,0),
10 => array(1,1,0,0,0,0,1,1,0,0),
15 => array(1,1,1,1,0,0,0,0,0,1),
20 => array(1,0,0,1,1,1,0,1,0,0)
);
foreach ($arr_mtr as $row) {
foreach ($row as $val)
print("{$val} ");
print("<br>");
}
print("<p>" . (mtr_row_unique_check(mtr_transpose($arr_mtr)) ? "Все столбцы разные" : "Не все столбцы разные"));
?>