public static function getTouchedSystemList($param, $arr, $percent) { $count = max(1, round(count($arr) * $percent)); $out = array(); for ($i = 0; $i < $count; $i++) { $system = Vect::rand_by_weight($arr); $out[] = $system; unset($arr[$system]); } // $_SESSION['messages'][] = "Список систем для $param на проценте $percent - ".join(', ', $out); return $out; }