PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 30
Noobster Отправлено: 22 Августа, 2022 - 14:02:21 • Тема: Оптимизация кода и аналог на JS • Форум: Вопросы новичков

Ответов: 2
Просмотров: 1287
Дайте нуббу ответ, пробую, но чтото с багами

те как определить в какой диапазон попадает количество дней Растерялся
Noobster Отправлено: 20 Июля, 2022 - 17:16:45 • Тема: Оптимизация кода и аналог на JS • Форум: Вопросы новичков

Ответов: 2
Просмотров: 1287
Добрый день,
Имеется массив, где идёт перечисление диапазон дней, и цена скидки.
Надо на каждый день отнимать цену скидки.
Код работает, но думаю требуется оптимизация, подскажите как лучше.

И ещё как аналогично написать на JS.
Спасибо Ниндзя

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $start_day = new Carbon("07/27/2022 03:40 pm");
  3. $end_day = new Carbon("07/30/2022 03:40 pm");
  4. $price = "45.25";
  5.  
  6. // Надо подправить для тестирования
  7. $discounts = "[0] => Array ( [0] => 1-2 [1] => 0 [2] => 10 ) [5] => Array ( [0] => 3-7 [1] => 5 [2] => 15 ) [10] => Array ( [0] => 8-12 [1] => 10 [2] => 20 )";
  8.  
  9. $total_days = $start_day->diffInDays($end_day);
  10. $total_price = $price*$total_days;
  11.  
  12. $day = $start_day->diffInDays($end_day);
  13. foreach ($discounts as $value) {
  14.         $day_value = explode("-", $value[0]);
  15.         $min_day = $day_value[0];
  16.         $max_day = $day_value[1];
  17.         if (in_array($day, range($min_day,$max_day))) {
  18.                 $price_discount = $value[1] * $day;
  19.                 $total_price -= $price_discount;
  20.                 break;
  21.         }
  22. }
  23.  
  24. echo $total_price;
  25. ?>
Noobster Отправлено: 28 Августа, 2019 - 13:38:13 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Решил ещё одну задачу когда надо было групировать массивы.

Теперь осталось:
1. Исключение: Когда указываю ключь для исключения напр. "id", он исключается во всех подмассивов, а для исключение в подмассивах я думаю указывать "[author_data][id]"


2. Может быть так что у записи нету какого-нибудь ключа, соотвественно не все значения идейтичные, поэтому надо выводить все ключи соотвественно по загаловку даже с пустым значением. Иначе сейчас проблемма когда какого-нибудь ключа нету и пропускает вывод ключа, т.е. выводит
[12]
[13]
[14]
[16]
[17]

Спасибо.
Noobster Отправлено: 26 Августа, 2019 - 06:42:35 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Готов на пива докинуть, помогите плз.
Вроде всего 2 условия.

Хех уже самому не ловко столько флудить Растерялся

Можно и алтернативно сделать, наоборот перечислить те ключи которые надо получасть из массива.
Noobster Отправлено: 24 Августа, 2019 - 12:10:56 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Если кто-то может подскажите другой код, если с этим никак получается доработать.
Спасибо.
Noobster Отправлено: 22 Августа, 2019 - 21:56:40 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Полных 2 дня не догоняю как сделать, всем кто помогли спасибо.

Кто может остальные 2 момента помогите доделать пожалуйста.

http://forum.php.su/topic.php?fo...91301#1566391301
п.1 и п.2

Спасибо!
Noobster Отправлено: 21 Августа, 2019 - 15:41:41 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
1. Понимаю что надо тут трогать:
PHP:
скопировать код в буфер обмена
  1. if (in_array($key, self::$excludes)) {
  2.     continue;
  3. }

Просто когда проверяю ключь он напр. "id", а в исключение прописываю напр. "[author_data][id]" или "author_data.id" Однако

2. Тоже не осилил, тупо цыфра выводится Однако

3. Сделал (тоже так думал)

Помогите добить Огорчение

Ещё вопрос на сколько объезательно или желательно писать в аргументах функции (array, string)

Про Питон: Ещё раз подниму вопрос, стоит ли переходить на него, если у меня знания ПШП только на Джуниор-Мидл Ур..
Noobster Отправлено: 21 Августа, 2019 - 14:42:15 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Вроде всё отлично работает как надо, супер вот только:

1. Если напр. я хочу исключить поле "id", но оно напр. находится в несколько массивах, тогда оно исключается во всех. Как можно исключить определёную? Может можно прописать ключь напр. так "product_data.id".

2. Сейчас оба результата "process" и "headers" по отдельности в массивах, мне надо на выходе 1 массив, где [0] ключи будет перечисление "headers" и дальше уже "process" (т.е. Заголовки и потом Данные). Пробовал array_merge, но что-то не то вроде

3. Как можно $excludes передавать сюда
PHP:
скопировать код в буфер обмена
  1. var_dump($f->process($in_arr), array_keys(Helper_Export::$headers));
т.е. он будет грузится за пределами класса.

Извините за тараканы. Растерялся
Noobster Отправлено: 20 Августа, 2019 - 14:53:27 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Это всё мне требуется для Экспорта данных, с разных источников, для разного формата.

И да верно, заранее я не знаю какие ключи и вложения будут, просто надо сделать макс. динамично, т.е. эту функцию я буду использовать для всех задач, и передавать её разное содержание массива.

Единственно только добавлю, что надо добавить некий статический массив, в который буду перечислять какие ключи надо исключать, чтобы в результате не выводились.

Спаисбо, и быстрого выздоровления желаю.
Noobster Отправлено: 20 Августа, 2019 - 14:35:48 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Vladimir Kheifets, большое спасибо уважаемый ещё раз! (не могу +1 поставить)

LIME, можешь и свой вариант показать?
Если чество записей может быть до 30к, как будет тут работать производительность сложно заранее подумать, ну а читаемость если самого кода, вроде ясно, а если результата, тут без разницы.

Просто если честно в одном случае может быть author_data, а вдругом может быть product_data, и оба с разными ключами, соотвественно динамичность хотелось бы.

И ещё мообще 3ур. массив может быть, т.е. по идее мне надо получить разбивку виде.
PHP:
скопировать код в буфер обмена
  1. Header_date
  2. Header_name
  3. Header_surname
  4. Header_author_data_id
  5. Header_author_data_company_id
  6. Header_author_data_passport_number
  7. Header_author_data_...


Спасибо.
Noobster Отправлено: 19 Августа, 2019 - 13:37:52 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Вроде работает, Можно как-то получить с много ур. массивом? т.е. если имеется:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.     (
  4.         [id] => 1319
  5.         [status] => 0
  6.         [author_id] => 1000
  7.         [client_id] => 1333
  8.         [date] => 2019-08-15 21:21:03
  9.         [name] => Maxim
  10.         [surname] => Malogin
  11.         [comment] => VPI client
  12.         [author_data] => Array
  13.         (
  14.             [id] => 1000
  15.             [is_avatar] => 1
  16.             [username] => Maxim Malogin
  17.             [company_id] =>
  18.             [passport_number] => 112233
  19.             [mobile_phone] =>
  20.             [email] => max@mail.ru
  21.         )
  22.     )
  23.  
  24.     [1] => Array
  25.     (
  26.         [id] => 1318
  27.         [status] => 0
  28.         [author_id] => 1000
  29.         [client_id] => 1333
  30.         [date] => 2019-08-15 16:29:30
  31.         [name] => Oleg
  32.         [surname] => Dinisov
  33.         [comment] => No accept
  34.         [author_data] => Array
  35.         (
  36.             [id] => 1000
  37.             [is_avatar] => 1
  38.             [username] => Oleg Dinisov
  39.             [company_id] =>
  40.             [passport_number] => 332211
  41.             [mobile_phone] =>
  42.             [email] => oleg@mail.ru
  43.         )
  44.     )
  45. )


Получить так:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.     (
  4.         [0] => Header_id
  5.         [1] => Header_status
  6.         [2] => Header_author_id
  7.         [3] => Header_client_id
  8.         [4] => Header_date_start
  9.         [5] => Header_name
  10.         [6] => Header_surname
  11.         [7] => Header_comment
  12.         [8] => Header_author_data_username
  13.         [9] => Header_author_data_passport_number
  14.         [10] => Header_author_data_mobile_phone
  15.         [11] => Header_author_data_email
  16.     )
  17.     [1] => Array
  18.     (
  19.         [0] => 1319
  20.         [1] => 0
  21.         [2] => 1000
  22.         [3] => 1333
  23.         [4] => 2019-08-15 21:21:03
  24.         [5] => Maxim
  25.         [6] => Malogin
  26.         [7] => VPI client
  27.         [8] => Maxim Malogin
  28.         [9] => 112233
  29.         [10] =>
  30.         [11] => max@mail.ru
  31.     )
  32.     [2] => Array
  33.     (
  34.         [0] => 1318
  35.         [1] => 0
  36.         [2] => 1000
  37.         [3] => 1333
  38.         [4] => 2019-08-15 16:29:30
  39.         [5] => Oleg
  40.         [6] => Dinisov
  41.         [7] => No accept
  42.         [8] => Oleg Dinisov
  43.         [9] => 332211
  44.         [10] =>
  45.         [11] => oleg@mail.ru
  46.     )
  47. )
Noobster Отправлено: 16 Августа, 2019 - 14:38:28 • Тема: Статическая страница с оплатой • Форум: Вопросы новичков

Ответов: 1
Просмотров: 288
Если честно всё довольно просто, макс. работа на 2ч.-3ч.
Вот детальное инфо. https://www[dot]liqpay[dot]ua/documentation/start
Noobster Отправлено: 15 Августа, 2019 - 22:21:21 • Тема: Поменять ключь массиву • Форум: Вопросы новичков

Ответов: 16
Просмотров: 2718
Есть массив
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.         [id] => 1319
  5.         [status] => 0
  6.         [author_id] => 1000
  7.         [client_id] => 1333
  8.         [date] => 2019-08-15 21:21:03
  9.         [name] => Maxim
  10.         [surname] => Malogin
  11.         [comment] => VPI client
  12.     )
  13.  
  14.     [1] => Array
  15.     (
  16.         [id] => 1318
  17.         [status] => 0
  18.         [author_id] => 1000
  19.         [client_id] => 1333
  20.         [date] => 2019-08-15 16:29:30
  21.         [name] => Oleg
  22.         [surname] => Dinisov
  23.         [comment] => No accept
  24.     )
  25. )


Как его преобразовать чтобы на выходе получить:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.     (
  4.         [0] => id
  5.         [1] => status
  6.         [2] => author_id
  7.         [3] => client_id
  8.         [4] => date_start
  9.         [5] => name
  10.         [6] => surname
  11.         [7] => comment
  12.     )
  13.     [1] => Array
  14.     (
  15.         [0] => 1319
  16.         [1] => 0
  17.         [2] => 1000
  18.         [3] => 1333
  19.         [4] => 2019-08-15 21:21:03
  20.         [5] => Maxim
  21.         [6] => Malogin
  22.         [7] => VPI client
  23.     )
  24.     [2] => Array
  25.     (
  26.         [0] => 1318
  27.         [1] => 0
  28.         [2] => 1000
  29.         [3] => 1333
  30.         [4] => 2019-08-15 16:29:30
  31.         [5] => Oleg
  32.         [6] => Dinisov
  33.         [7] => No accept
  34.     )
  35. )


Спасибо.
Noobster Отправлено: 04 Августа, 2019 - 17:41:29 • Тема: Преобразование массива и суммирование • Форум: Вопросы новичков

Ответов: 5
Просмотров: 620
Please Help Огорчение Не понял
Noobster Отправлено: 02 Августа, 2019 - 20:29:50 • Тема: Преобразование массива и суммирование • Форум: Вопросы новичков

Ответов: 5
Просмотров: 620
Да, во пробую, понимаю что криво, но всё же.

PHP:
скопировать код в буфер обмена
  1. $break = [];
  2. foreach ($array as $value => $key){
  3.     $break[$key['cat_id']] += $value['amount'];
  4. }


Update: Я привёл только часть массива, он содержит на много больше ключей.

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB