2015-07-24 2 views
0

У меня есть три различных массивовПолучить значения из трех различных массива

price = Array 
(
    [0] => 200 
    [1] => 300 
    [2] => 400 
    [3] => 500 
) 

package = Array 
(
    [0] => 100040 
    [1] => 100041 
    [2] => 100042 
    [3] => 100043 
) 

NoOfClients =Array 
(
    [0] => 100 
    [1] => 200 
    [2] => 400 
    [3] => 750 
) 

При необходимости получить пакет и цену, основанную на NoOfClients. Пример: Если у меня есть счетчик клиента 350, Так что мой пакет 100042 и цена = 400. Более понять, ниже я показать одно, если другое условие

clients = 350; 
if(clients <= NoOfClients[0]){ 

plan = 100040 
price = 200 

}elseif(clients > NoOfClients[0] and clients <= NoOfClients[1]){ 

plan = 100041 
price = 300 

}elseif(clients > NoOfClients[1] and $clients <= NoOfClients[2]){ 

plan = 100042 
price = 400 

}else{ 

plan = 100043 
price = 500 

} 

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

+0

Можете ли вы подтвердить, все ли массивы одинакового количества записей? то есть, если цена имеет 4 записи, другие 2 массива также имеют только 4 записи? – sujivasagam

+0

Да. Все три массива имеют одинаковое количество записей. примечание: я сделал редактирование в своем посте, пожалуйста, пересмотреть. Thankyou –

ответ

0
$clients = 10; 

$i = -1; 
foreach($NoOfClients as $item) { 
    $i++; 
    if ($clients < $item) break; 
} 

echo $plan = $package[$i]; 
echo $price = $price[$i]; 
0

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

$clients= 10; 
$price = array(200, 300, 400, 500); 
$package = array(100040, 100041, 100042, 100043); 
$NoOfClients = array(100, 200, 400, 750); 

if($clients<=$NoOfClients[0]) 
{ 
    $tempprice=$price[0]; 
    $temppackage=$package[0]; 
} 
else 
{ 
    for($i=0;$i<count($NoOfClients);$i++) 
    { 
     if($i+1<=count($NoOfClients) && !$clients>=$NoOfClients[$i] && $clients<=$NoOfClients[$i+1]) 
     { 
      $tempprice=$price[$i+1]; 
      $temppackage=$package[$i+1]; 
      break; 
     } 
     else 
     { 
      $tempprice=$price[count($NoOfClients)-1]; 
      $temppackage=$package[count($NoOfClients)-1]; 
     } 
    } 
} 

echo '<b>Price:</b> '.$tempprice.'<br/><b>Package:</b> '.$temppackage; 
+0

Это не работает, если '$ clients' меньше' $ NoOfClients [0] '(100) – HenryTK

+0

Хорошо. Я пропустил первое условие .. Сейчас я отредактирую код – sujivasagam

+0

@Bibin - клиенты могут быть значение меньше 100? – HenryTK

0

Если вы используете просто 4 значения в одиночку в массивах, то вы можете просто получить значения цен и пакет с помощью цикла, который вы используете себя с небольшими изменениями

clients = 350; 
if(clients <= NoOfClients[0]){ 

plan = package[0]; 
price = price[0]; 

}elseif(clients > NoOfClients[0] and clients <= NoOfClients[1]){ 

plan = package[1]; 
price = price[1]; 

}elseif(clients > NoOfClients[1] and $clients <= NoOfClients[2]){ 

plan = package[2]; 
price = price[2]; 

}else{ 

plan = package[3]; 
price = price[3]; 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^