Показать сообщение отдельно
  #3 (permalink)  
Старый 09.06.2015, 09:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Не известно во что вводят, поэтому пусть есть исходный массив.
var a = [
    [2, 7, 6],
    [9, 5, 1],
    [4, 3, 8]
], m = [0], x = y = 0;

for(var i=0, k = a.length * a.length; i < k; i++ ) {
    
    var n = i%a.length, 
        j = Math.floor(i/a.length);
    
    if(i && !(n)) {
        if(x != y || m[0] && m[0] != x) { 
            m.push(0);
            break;
        } else m[0] = x;
        x = y = 0;
    }
    
    x += a[j][n];
    y += a[n][j];
}

alert(m.length > 1 ? 'Not' : 'Yes')


PHP
$a = [
    [2, 7, 6],
    [9, 5, 1],
    [4, 3, 8]
];

$n = array_map('array_sum', $a);

for($i=0; $i < count($a[0]); $i++) array_push($n, array_sum(array_column($a, $i)));

echo count(array_unique($n)) > 1 ? 'Not' : 'Yes';


Нужно только проверять, что передан массив, и что его элементы, это тоже массивы, и количество их элементов одинаково у всех и равно количеству элементов массива в который они вложены, и это число должно быть более 1. А вот как проверять, это тоже зависит от того во что ввод.
Ответить с цитированием