Split php with loop logic

Hello i have a logic question to make my tests finish This is my array
Array ( 
[0] => Array (
  [id] => 1,
  [p] => 150,
  [w] => 120,
),
[1] => Array (
  [id] => 2,
  [p] => 10,
  [w] => 20,
),
[2] => Array (
  [id] => 3,
  [p] => 70,
  [w] => 10,
),
[3] => Array (
  [id] => 4,
  [p] => 100,
  [w] => 45,
),
[4] => Array (
  [id] => 5,
  [p] => 110,
  [w] => 500,
)
)
Update the code
$pt = 0;
foreach($data as $k => $plist){ 
    $pl[] = $plist['id'];
    $pt += $plist['p'];
    if($pt >= 250) break; 
}
// Get filter max p 250
foreach($data $k => $dat){  
    foreach($pl as $paa => $pat){
        unset($data[$paa]); // Delete list key of Data
    }
    $jres[] = array("id" => $dat['id'],"p" => $dat['p'], "w" => $dat['w']);
}
// callback function and filter that will be printed only
foreach($jres as $k => $dat){   
    foreach($data as $paa => $pat){
        unset($jres[$paa]); // Delete list key of JRES
    }
}   
foreach($jres as $k => $dat){
    $subtotal += $dat['p'];
}
$subs = $subtotal + $pt;
end($pl);         
$end = key($pl); 
if($subs > 250){
    unset($pl[$end]); // delete one key if total **p** sum total **price * w ** if above 250 will delete one key    
}
$pack = '<table class="table">
    <thead>
        <h3 style="background:#D8D8D8;">Package 1</h3>
        <tr>
            <td class="right">P</td>
            <td class="right">W</td>
        </tr>
    </thead><tbody>';
foreach($jres as $k => $dat){
$subtotal += $dat['p'];
$subw += $dat['w'];
$list .='<tr>
            <td class="right">$'.$dat['p'].'</td>
            <td class="right">'.$dat['w'].$k.' gram</td>
        </tr>';
    foreach($data as $dat2 => $pat){
        if($k == $dat2) unset($data[$k]); // Delete key from data
    }
}
$gtotal = $subw * $sfee + $subtotal;
$total =    '<tr>
            <th class="right" colspan="2"> Subtotal: </th>
            <th class="right"> $'.$subtotal.' </th>
        </tr>
        <tr>
            <th class="right" colspan="2">Shipping Cost ['.$subw.'g]: </th>
            <th class="right"> $'.$subw * $sfee.' </th>
        </tr>
        <tr>
            <th class="right" colspan="2"> Grandtotal: </th>
            <th class="right"> $'.$gtotal.' </th>
        </tr>
        <tr>
            <th class="right"></th>
            <th class="right"></th>
        </tr>
  </tbody>
</table>';
The goal is how to find smallest "w" in a View split
Max of "p" per split view if total sum is 250
Price /w is 0.25 will be sum with total of p
So i have try some logic with loop but it so complicated and not work
Can you help me to write the logic of this?
my code above just displaying first split view.
sample output i want it like this:
First Split
| id| w | p |
|  2| 20| 10|
|  3| 10| 70|
|  4| 45|100|
| stotal|180|
| wtotal|18.75| // $w = 20 + 10 + 45 * 0.25;
| gtotal|198.75| 

 SecondSplit
| id| w | p |
|  1|120|150|
| stotal|150|
| wtotal| 30| // $w = 120 * 0.25;
|Gtotal |180| 

 Third Split
| id| w | p |
|  5|500|110|
| stotal|110|
| wtotal|125| // $w = 500 * 0.25;
|Gtotal |235| 

Answer:

This will find the lowest value from your array:
<?php

$Arrays = Array ( 
'0' => Array (
  'p' => 150,
  'w' => 120,
),
'1' => Array (
  'p' => 10,
  'w' => 20,
),
'2' => Array (
  'p' => 70,
  'w' => 10,
),
'3' => Array (
  'p' => 100,
  'w' => 45,
),
'4' => Array (
  'p' => 110,
  'w' => 500,
)
);

$Encode = json_encode($Arrays);

$Decoded = json_decode($Encode);



foreach($Decoded as $Item){
$Num[] = $Item->w;

}
echo min($Num); //Will echo 10

0 Response to "Split php with loop logic"

Đăng nhận xét

Popular Posts

Popular Posts