Как бы я вытащить правильное значение из этого цикла PHP - PullRequest
0 голосов
/ 21 мая 2011

У меня есть этот цикл PHP

$two_related_total = 0;
$three_related_total = 0;
$four_related_total = 0;
$five_related_total = 0;
$all_values = getRelatedProducts(91)
$arr = array(2, 3, 4, 5);
 foreach ($arr as $discount_quantity) {

  //do something in here here to get the discounted_price or the price
}

Вот данные в $ getRelatedProducts. В основном мне нужно получить дисконтированную сумму для каждого массива

Например, для значения 2 мне нужно установить значение $ two_related_total равным 729,0000 и так далее ... или, если есть лучший способ получить четыре значения, пожалуйста, помогите мне .... спасибо в заранее

[0] => Array
         (
             [product_id] => 180
             [price] => 749.0000
             [discounted_price] => 729.0000
             [cost] => 420.0000
             [quantity] => 2
         )

     [1] => Array
         (
             [product_id] => 180
             [price] => 749.0000
             [discounted_price] => 545.0000
             [cost] => 420.0000
             [quantity] => 3
         )

     [2] => Array
         (
             [product_id] => 180
             [price] => 749.0000
             [discounted_price] => 545.0000
             [cost] => 420.0000
             [quantity] => 4
         )

     [3] => Array
         (
             [product_id] => 180
             [price] => 749.0000
             [discounted_price] => 545.0000
             [cost] => 420.0000
             [quantity] => 5
         )

 )

Ответы [ 3 ]

1 голос
/ 21 мая 2011

I THINK это то, что вы хотите:

$discounts = array();

foreach($product_array as $key => $product) {
    $discounts[$key] = $product['discounted_price'];
}

echo $discounts[2]; // $545.00 

Использовать массив для хранения скидок гораздо проще, чем пытаться настроить отдельные переменные для каждой.В противном случае вы в конечном итоге получите $five_hundred_bajillion_60_kajillion_and_3_discounted_total по мере роста массива вашей продукции.

1 голос
/ 21 мая 2011

Я думаю, что это то, что вы хотите, но ваш вопрос действительно неясен.

$arr = array(2, 3, 4, 5);
$totals = array(2=>0, 3=>0, 4=>0, 5=>0);
foreach ( $all_values as $product ){
  if (in_array($product['quantity'], $arr)) {
    $totals[$products['quantity']] += $product['discounted_price'];
  }
}

Для первых двух строк вы могли бы альтернативно сделать:

$arr = range(2,5);
$totals = array_fill_keys($arr, 0);
1 голос
/ 21 мая 2011

Вы можете переключить связанные итоги в массив:

$related_totals=array();
$all_values = getRelatedProducts(91)
$arr = array(2, 3, 4, 5);
foreach ($arr as $discount_quantity) {
   $related_totals[$discount_quantity]=$all_values[$discount_quantity]['price'];
   //do something in here here to get the discounted_price or the price
}

Я не совсем понимаю ваш вопрос, поскольку, как другие указывают, нет значения 729 (хотя есть 749).Но это дает вам идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...