@The_Last_Dot

Как возвратить новый массив в PHP?

$prices = [12000, 51600, 700, 10];
    $sale = 40;
    function pricesWithSale($sale, $prices) {
        foreach($prices as $key => $price) {
            $prices[$key] = ($price * $sale) / 100;
        }
    }
    pricesWithSale($sale, $prices);
    var_dump($prices);


var_dump($prices) возвращает тот же самый массив, как мне вернуть новый с учетом $sale? Спасибо
  • Вопрос задан
  • 164 просмотра
Решения вопроса 3
E1ON
@E1ON
Programming, Gamedev, VR
<?php

$prices = [12000, 51600, 700, 10];
$sale = 40;

function pricesWithSale($sale, $prices) {
    foreach($prices as $key => $price) {
        $prices[$key] = ($price * $sale) / 100;
    }
    
    return $prices;
}

$prices = pricesWithSale($sale, $prices);
var_dump($prices);
Ответ написан
Комментировать
netrox
@netrox
https://www.php.net/manual/en/language.references....
function pricesWithSale($sale, &$prices) {
        foreach($prices as $key => $price) {
            $prices[$key] = ($price * $sale) / 100;
        }
    }
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Для PHP 7.4 и выше можно даже проще (более ранние версии не поддерживают стрелочные функции):
function pricesWithSale($sale, $prices) {
    return array_map(fn($price) => ($price * $sale) / 100, $prices);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы