В целом я уже написал этот цикл на php, и он вроде как работает, но через раз... Не могу понять в чём ошибка:
$plus3 = array();
foreach ($ar3 as $ar3_item) {
if ($ar3_item > 0) {
$plus3[] = array_search($ar3_item, $ar3);
}
}
$i1 = 0;
foreach ($ar1 as $ar1_item) {
if (array_search($ar1_item, $ar1) === $plus3[$i]) {
$d1 += (($ar1[$i1] - $avrg1) ** 2) / ($n - 1);
}
$i1++;
}
echo $d1;
Здесь у меня есть 3 массива: ar1, ar3 и plus3. В plus3 я загнал ключи только положительных элементов массива ar3, после чего мне нужно провести некоторые вычисления (переменная d1) с каждым элементом массива ar1, который соответствует положительным элементам ar3, для чего я и создал plus3. Собственно цикл работает, но иногда выдаёт NULL, даже если в ar3 есть и положительные и отрицательные значения (ar1 и ar3 у меня генерируются случайно).
И ещё кое-что: вообще задача эта на C++, просто я решил сначала сделать такой набросок в привычном для себя php, чтобы разобраться в логике задачи. Если вдруг вы объясните мне этот цикл на C++, буду очень благодарен!