С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
 Аватар для olegrnd
0 / 0 / 0
Регистрация: 11.08.2013
Сообщений: 16

min\max array не выводится однозначное значение

11.08.2013, 02:58. Показов 3899. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте помогите со следующим вопросом. Не корректно работает min\max через array.

Есть текстовый файл .text
создаю массив на основе данных из .txt
и при поиске наименьшего значения выводится не правильное значение, а именно не выводится однозначное значение .[0-9].

Может кто сталкивался с этой проблемой не поленись отпишись. Заранее спасибо.
Если возникнут вопросы как я до это го докатился вот листинг.

PHP
1
2
3
$arr = file(".txt"); 
$min=min($arr);
echo $min;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2013, 02:58
Ответы с готовыми решениями:

Описать функцию F (a, min, max ) определяющую значение максимального max и минимального min элементов этого массива
Помогите с задачкой! плиз! Для вещественного массива а, описать функцию F (a, min, max ) определяющую значение максимального max и...

Написать программу, которая вычисляет значение выражения u = max(x,y,z)^2 - min(x,y,z)^2 / (max(x,y,z) + min(x,y,z))^2
Написать программу которая проверяет по заданным трем значениям x,y,z и вычисляет следующее выражение ...

Массив заполнить случайными числами и вывести max и min. Выводится только max
Задание такое: Массив заполняется случайными числами потом если нет повторяющихся max и min должно вывести просто max и min ищет норм но...

23
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 03:21
file() - зачитывает файл и каждую строчку сохраняет в новой переменной массива.
PHP
1
2
$arr = file(".txt");
print_r($arr);
Покажи массив или файл.
0
 Аватар для olegrnd
0 / 0 / 0
Регистрация: 11.08.2013
Сообщений: 16
11.08.2013, 03:42  [ТС]
Спасибо Dealiss, что откликнулся.
Массив очень прост

1
23
123
456

Вот и весь массив.
после изысканий выяснилось, что: Если есть 3х значное число в массиве, то наименьшее должно иметь вид 007, также если есть максимальное 2х значное то вид 07.. Полагаю, что проблема кроется в типе данных. Но как указывать принудительно тип данных пока остаётся загадкой....
0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 03:48
У меня работает:
PHP
1
2
3
$array = array(1,23,123,456);
$min=min($array);
echo $min; // 1
Добавлено через 43 секунды
PHP
1
2
$max=max($array);
echo $max; // 456
0
 Аватар для olegrnd
0 / 0 / 0
Регистрация: 11.08.2013
Сообщений: 16
11.08.2013, 03:50  [ТС]
Так работает всегда.
Запиши в .txt построчно.
1
23
123
456

а затем во так вот

PHP
1
2
3
$arr = file("тот самый массив.txt"); 
$min=min($arr);
echo $min;
0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 03:55
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
    Содержимое файла:
    1 
    23
    123
    456
 
*/
$array = file('text.txt');
print_r($array);
/*
    Массив $array:
    Array ( 
        [0] => 1 
        [1] => 23 
        [2] => 123 
        [3] => 456 
    )
*/
$min=min($array);
echo $min; // 1
1
 Аватар для olegrnd
0 / 0 / 0
Регистрация: 11.08.2013
Сообщений: 16
11.08.2013, 04:02  [ТС]
Точно так работает.
А попробуй вот так.
345
120
9
430
100
10
234
129
12
4
34
65
7
11
456

Спасибо за понимание первый раз пишу на форумах. Надо было сразу выложить как не работает. Да и если потом массив форматировать по возрастанию то к сожалению теряется смысл. Так как на основе выбранной позиции берётся ещё одна запись из другого txt.
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
11.08.2013, 04:23
к int-у то приведите каждый элемент массива...
1
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 04:27
PHP
1
2
3
4
5
6
7
8
foreach($array as $key => $value)
{
    if(is_int($value))
        echo "Integer: $value\n";
    elseif(is_string($value))
        echo "String: $value\n";
    $array[$key] = (int) $value;
}
Добавлено через 1 минуту
Результат:
String: 345
String: 120
String: 9
String: 430
String: 100
String: 10
String: 234
String: 129
String: 12
String: 4
String: 34
String: 65
String: 7
String: 11
String: 4564
1
 Аватар для olegrnd
0 / 0 / 0
Регистрация: 11.08.2013
Сообщений: 16
11.08.2013, 04:29  [ТС]
Спасибо NEbO, что откликнулся.

Я пробовал привести их сразу но не вышло. А как поэлементно делать?

PHP
1
2
3
4
5
6
7
8
$arr = file("text.txt"); 
for($i = 0; $i < count($arr); $i++) 
  { 
     $newarr[$i]=(int)$arr[$i];
  }
 
$min=min($newarr);
echo $min;

Заработало.....

Всем спасибо...

Так????
0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 04:32
olegrnd,
PHP
1
2
3
4
foreach($array as $key => $value)
{
    $array[$key] = (int) $value;
}
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.08.2013, 08:08
PHP
1
$arr = array_map('intval', $arr);
0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 08:13
KOPOJI, а где можно узнать, какие ещё команды есть для этой функции ('intval' и другие).
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.08.2013, 08:18
в array_map можно передавать любую callable функцию, встроенную или собственную
0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 08:29
Получается:
- Предположим у меня есть функция:
PHP
1
2
3
4
5
6
7
8
function intType($array)
{
    foreach($array as $key => $value)
    {
        $array[$key] = (int) $value;
    }
    return $array;
}
Я могу вызвать её в array_map()?
PHP
1
$result = array_map('intType', $arr);
Верно тебя понял?
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
11.08.2013, 08:44
Цитата Сообщение от Dealiss Посмотреть сообщение
Я могу вызвать её в array_map()?
все верно. посмотрите информацию о типах callable, и вообще, что такое callback-функции (а еще лучше -- функции высших порядков, в ФП, это более общий случай), чтобы понять, как оно работает. в си и многих других языках они есть
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.08.2013, 12:31
Цитата Сообщение от NEbO Посмотреть сообщение
все верно
не совсем. Будет верно только в том случае, если каждый элемент массива - в свою очередь сам является массивом. array_map пробегает по каждому элементу массива, а не передает весь массив
1
11.08.2013, 14:37

Не по теме:

вообще-то да, я на тело функции-то и не посмотрел:) да, работать будет только в случае многоуровневых массивов. я ответил только лишь на конкретный вопрос -- можно ее впихнуть в array_map или нет. В этом плане ответ "можно", вне зависимости от типа данных, хранящихся в массиве. Другое дело, что часть из этих данных невозможно будет обработать, и это приведет к ошибке... Вообщем, я хотел сказать, посмотрите довольно известные функции map и reduce, чтобы понять как все это работает. Если кратко, то в функцию передается не сам массив, для которого вызываете array_walk (в этом нет смысла: вы и так можете вызвать функцию с аргументом -- этим массивом), а каждый его элемент.

0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
11.08.2013, 18:17
Цитата Сообщение от KOPOJI Посмотреть сообщение
пробегает по каждому элементу массива
Что получается (к примеру):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$array = array(
    0 => '1';
    1 => '2';
);
function intType($array)
{
    foreach($array as $key => $value)
    {
        $array[$key] = (int) $value;
    }
    return $array;
}
$result = array_map('intType', $array);
В массив $array (строка: intType($array)) придет вот эта переменная: 0 => '1'; ?
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
11.08.2013, 18:35
Dealiss, специально для вас придумали интерпретатор php. Такая штука, на php.net можете скачать
берете файл, открываете, сохраняете, запускаете, смотрите результат
Затем, когда у вас вылезет ошибка, возьмите засуньте туда (в функцию) var_dump. и посмотрите. А еще в мануалах это есть.
Ну что вы в самом деле, такие вопросы задаете?

Добавлено через 1 минуту

Не по теме:

иль создайте чтоль тему отдельную по поводу того, как работает array_walk, если что-то непонятно. А то как-то недюже тут это обсуждать:)

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.08.2013, 18:35
Помогаю со студенческими работами здесь

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с помощью использования процедур.

Определить значение z, z=min(a,3b)*max(2a-b,2b), где max(x,y) есть максималое из чисел x,y
Определить значение z, z=min(a,3b)*max(2a-b,2b), где max(x,y) есть максималое из чисел x,y

Найти max и min элементы в массиве и номер элемента, близкого к среднему арифметическому min и max.
Привет всем! Очень прошу помочь в решении задачи на определение характеристик одномерного массива. Задача такова: Дана последовательность...

По заданным значениям x, y, z вычислить значения u: u=min (x, max(y, z). Для расчета написать функции max(x, y) и min(x
По заданным значениям x, y, z вычислить значения u: u=min (x, max(y, z)). Для расчета написать функции max(x, y) и min(x, y).

Найти max и min, если min левее max, то среднее арифметическое между ними
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { int n,a; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru