Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685

Работа с двумерным массивом

05.11.2019, 11:45. Показов 1751. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день коллеги подскажите как мне вывести нужные массивы с двумерного массива и сумму покупки нужного количества кг яблок.
Пример:

HTML5
1
2
3
4
<form method="POST" action="Apple.php">
    Количество яблок на покупку:<input type="text" name="count">
    <button type="submit">send</button>
    </form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
array(Apple) {
  [0]=> array(6) {
    ["trade_id"]=> string(14) "118759074"
    ["type"]=> string(9) "sell"
    ["quantity"]=>string(14) "2.1057588"
    ["price"]=>string(14) "61.776658"
    ["amount"]=>string(17) "130.08674121"
    ["date"]=>string(15) "1572938931"
  }
  [1]=>array(6) {
    ["trade_id"]=> string(14) "118760045"
    ["type"]=>string(9) "sell"
    ["quantity"]=> string(14) "1.8973346"
    ["price"]=> string(14) "61.782999"
    ["amount"]=>string(17) "117.22302169"
    ["date"]=>string(15) "1572939318"
HTML5
1
2
<form method="POST" action="Apple.php">
        <button type="submit">send</button>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2019, 11:45
Ответы с готовыми решениями:

Работа с двумерным массивом
Подскажите что делаю не так, у меня есть трехмерный массив в котором записан такой двумерный массив: =&gt;array(100){ ...

Работа с двумерным массивом
Очень прошу помощи!! SQL запросом взял переменную из БД. &quot;Конвертировал&quot; в понятный вид: $gorod=unserialize($row000); ...

Работа с двумерным массивом
требуется написать программу, которая будет сокращать марицу(через двумерный массив), т.е. результаты записывать в другой массив. 1)...

30
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
05.11.2019, 17:18
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Esso11 Посмотреть сообщение
мне выдаст результат: набралось яблок на 0 кг
Код должен быть другой немного. И не ясно, если запрос 0.1 кг, нужно ли продолжать поиск яблок до 0.1 кг, или нужно отщипнуть 0.1 от первого попавшегося
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
05.11.2019, 17:22  [ТС]
TolikD, да код идентичен тому что написал (crautcher). Я думал что можно в идеале сделать так что бы потом считало общую сумму покупки вычитая последний остаток из крайнего массива если там продается больше чем нужно пользователю

Добавлено через 53 секунды
TolikD, нужно отщипнуть 0,1 от первого попавшегося я весь массив отсортировал уже

Добавлено через 1 минуту
TolikD, т.е. количество не важно важна мне цена что бы купить яблоки по низкой цене, для этого я отсортировал массив по ценам и теперь только нужно как вы уже сказали
Цитата Сообщение от TolikD Посмотреть сообщение
отщипнуть 0.1 от первого попавшегося
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
05.11.2019, 17:23
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
# ....
$summaryQuantity = 0;
$applesBascet = [];
 
foreach ($new_arr as $key => $value) {
 
 
    if (($summaryQuantity + $value['quantity']) > $c) {
        $value['quantity'] = $c - $summaryQuantity;
        $applesBascet[] = $value;
        $summaryQuantity = $c;
                
        break; //already have enough apples
    }
 
    $summaryQuantity += $value['quantity'];
    $applesBascet[] = $value;
 
}
 
?>
Набралось яблок на <?= $summaryQuantity ?>кг. Яблоки
<pre>
    <?php print_r($applesBascet) ?>
</pre>
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
05.11.2019, 17:31  [ТС]
TolikD, можно комментарий к $value['quantity'] = $c - $summaryQuantity; не пойму как это мы в значения взятые с массива перезаписываем свои?

Добавлено через 4 минуты
TolikD, аа т.е. мы остаток перезаписываем в значение что бы вывести, а как мне посчитать общую стоимость этим подмассивов?
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
05.11.2019, 17:33
Цитата Сообщение от Esso11 Посмотреть сообщение
значения взятые с массива перезаписываем свои?
Нам ничего не мешает это сделать. К тому же, $value это не элемент массива, а временная копия элемента. Нам так проще менять результат уже с готовым элементом. Единственное, я забыл добавить в код расчет суммы в последнем элементе. То есть последняя версия кода будет такая:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
#....
$summaryQuantity = 0;
$applesBascet = [];
 
foreach ($new_arr as $key => $value) {
 
 
    if (($summaryQuantity + $value['quantity']) > $c) {
        $value['quantity'] = $c - $summaryQuantity;
        $value['amount'] = $value['price'] * $value['quantity'];
        $applesBascet[] = $value;
        $summaryQuantity = $c;
        
        break; //already have enough apples
    }
 
    $summaryQuantity += $value['quantity'];
    $applesBascet[] = $value;
 
}
 
?>
Набралось яблок на <?= $summaryQuantity ?>кг. Яблоки
<pre>
    <?php print_r($applesBascet) ?>
</pre>
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
05.11.2019, 17:41  [ТС]
TolikD,
Цитата Сообщение от Esso11 Посмотреть сообщение
а как мне посчитать общую стоимость этим подмассивов?
у них же везде цены разные и количество покупаемые у них разные и мы может купить не все что они продают а кусочек
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
05.11.2019, 17:45
Esso11, В коде, что я предоставил это всё учитывается
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
05.11.2019, 17:48  [ТС]
TolikD, аа она посчитана в $value['amount'] , да?

Добавлено через 1 минуту
TolikD, если не трудно могли бы еще раз прокомментировать ваш код построчно
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
05.11.2019, 17:49
Теперь понятно, в чем вопрос.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
# ...
$summaryQuantity = 0;
$summaryAmount = 0;
$applesBascet = [];
 
foreach ($new_arr as $key => $value) {
 
 
    if (($summaryQuantity + $value['quantity']) > $c) {
        $value['quantity'] = $c - $summaryQuantity;
        $value['amount'] = $value['price'] * $value['quantity'];
 
        $summaryAmount += $value['amount'];
 
        $applesBascet[] = $value;
        $summaryQuantity = $c;
        
        break; //already have enough apples
    }
 
    $summaryAmount += $value['amount'];
 
    $summaryQuantity += $value['quantity'];
    $applesBascet[] = $value;
 
}
 
?>
Набралось яблок на <?= $summaryQuantity ?>кг. на сумму <?=$summaryAmount?>. Яблоки
<pre>
    <?php print_r($applesBascet) ?>
</pre>
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
05.11.2019, 17:57  [ТС]
TolikD, спасибо за помощь, посижу еще покручу ваш код что бы понимать точно что как работает
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
05.11.2019, 17:59
Лучший ответ Сообщение было отмечено Esso11 как решение

Решение

С коментами
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
# ...
$summaryQuantity = 0; # Общее количество
$summaryAmount = 0; # Общая стоимость
$applesBascet = [];
 
foreach ($new_arr as $key => $value) {
 
 
    if (($summaryQuantity + $value['quantity']) > $c) {
        $value['quantity'] = $c - $summaryQuantity; # считаем количество последнего куска
        $value['amount'] = $value['price'] * $value['quantity']; # считаем стоимость последнего куска
 
        $summaryAmount += $value['amount']; # добавляем стоимость последнего куска к общей стоимости
 
        $applesBascet[] = $value; # запоминаем последний кусок от выбранного элемента
        $summaryQuantity = $c; # перебрали не весь массив, значит суммарное количество равно введенному в форме
        
        break; //already have enough apples
    }
 
    $summaryAmount += $value['amount']; # считаем общую стоимость выбранных элементов
 
    $summaryQuantity += $value['quantity']; # считаем общее количество выбранных элементов
    $applesBascet[] = $value; # запоминаем выбранный элемент
 
}
 
?>
Набралось яблок на <?= $summaryQuantity ?>кг. на сумму <?=$summaryAmount?>. Яблоки
<pre>
    <?php print_r($applesBascet) ?>
</pre>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2019, 17:59
Помогаю со студенческими работами здесь

Работа с двумерным массивом
дан двумерный массив размером n*m,заполненный случайным образом. 1.Заменить отрицательный элемент каждой строки нулем. 2.Поменять...

Работа с двумерным массивом
Задача. Ввести целочисленный двумерный массив , вывести его. Найти k– количество чётных элементов на главной диагонали. Далее найти...

Работа с двумерным массивом
Доброго времени суток! Необходимо сделать такую программу: 1)Заполнить массив из 10 строк и 10 столбцов случайными двузначными...

Работа с двумерным массивом
1. Дан двумерный массив А, действительных чисел. Определить: 1) Сумму элементов k-го столбца; 2) Произведение элементов С-й строки; ...

Работа с двумерным массивом
Как реализовать двумерный массив с помощью ДСЧ и вручную и выполнить эти действия? 1)Добавить после каждого четного элемента элемент со...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru