PHP array_map несколько параметров не работают Как решить?

В моем коде ниже GST и Количество печатаются правильно, но Скидка не печатает результат. Почему не печатает Скидка? Как я могу решить эту проблему?

$GST = Array ( [0] => 18 );
$Amount = Array ( [0] => 25000 );
$Discount = Array ( [0] => 10 );
array_map( 
    function($GST, $Amount, $Discount){ 
        echo ' GST: '.$GST.' Amount: '.$Amount.' Discount: '.$Discount.'<br>';
        echo 'Discount: '.(($Amount * $Discount) / 100).' Amount After Discount: '.($Amount - (($Amount * $Discount) / 100)).'<br>';
        echo 'GST: '.(($Amount - (($Amount * $Discount) / 100)) * $GST / 100).'<br>';
        //return ($Amount - (($Amount * $Discount) / 100)) * $GST / 100; 
    }, 
    !is_array($GST) ? [] : $GST, 
    !is_array($Amount) ? [] : $Amount, 
    !is_array($Discount) ? [] : $Discount 
)

Так вы определили свои массивы? Это должно вызвать ошибки синтаксического анализа. Кстати, я протестировал ваш код, и он работает (после изменения того, как вы определяете массивы). Вот демонстрация: 3v4l.org/SqgJO

M. Eriksson 22.12.2018 12:29
$GST = Array ( [0] => 18 ); недействителен PHP
axiac 22.12.2018 20:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
69
1

Ответы 1

Вопрос в переопределении массивов, и вы должны быть на пути к успеху. Код предоставлен пользователем Магнус Эрикссон.

$GST      = Array (18);
$Amount   = Array (25000);
$Discount = Array (10);
array_map( 
    function($GST, $Amount, $Discount){ 
        var_dump($GST, $Amount, $Discount);
        echo PHP_EOL;
        echo 'GST: '.$GST.' Amount: '.$Amount.' Discount: '.$Discount.PHP_EOL;
        echo 'Discount: '.(($Amount * $Discount) / 100).' Amount After Discount: '.($Amount - (($Amount * $Discount) / 100)).PHP_EOL;
        echo 'GST: '.(($Amount - (($Amount * $Discount) / 100)) * $GST / 100).PHP_EOL;
        //return ($Amount - (($Amount * $Discount) / 100)) * $GST / 100; 
    }, 
    !is_array($GST) ? [] : $GST, 
    !is_array($Amount) ? [] : $Amount, 
    !is_array($Discount) ? [] : $Discount 
);

Вывод:

int(18)

int(25000)

int(10)

GST: 18 Amount: 25000 Discount: 10

Discount: 2500 Amount After Discount: 22500

GST: 4050

Вы могли бы по крайней мере сказать мне, если собираетесь скопировать / вставить мою демонстрацию? :-п

M. Eriksson 22.12.2018 12:50

Когда был опубликован ваш комментарий, я еще не закончил вставлять код. Как видите, на вас ссылаются ;-) Также внесены изменения в сам вопрос, чтобы сделать его читабельным.

ZF007 22.12.2018 12:55

Не беспокойся. :-)

M. Eriksson 22.12.2018 12:57

Другие вопросы по теме