foreach($a as $k=>$v)
{
print_r($newarr);
echo $a[$k]['5'].'<br />';
}Array
(
    [0] => Array
        (
            [lotno] => 3206
            [count] => 12
        )    [1] => Array
        (
            [lotno] => 3207
            [count] => 63
        )    [2] => Array
        (
            [lotno] => 3218
            [count] => 180
        ))
120
Array
(
    [0] => Array
        (
            [lotno] => 3206
            [count] => 12
        )    [1] => Array
        (
            [lotno] => 3207
            [count] => 63
        )    [2] => Array
        (
            [lotno] => 3218
            [count] => 180
        ))
135
将count相加,如果对应行的结果为120,则显示3206*12 3207*63 3218*45
若对应行的结果为135,则显示3218*135 (135=180-45(上一轮count已用的45),不够则补齐)

解决方案 »

  1.   

    这个意思$ar = array (
    array( 'lotno' => 3206, 'count' => 12 ),
    array( 'lotno' => 3207, 'count' => 63 ),
    array( 'lotno' => 3218, 'count' => 180 ),
    );$s = '';
    $n = 0;
    foreach($ar as $r) {
      if($n + $r['count'] > 120) {
        echo $s . $r['lotno'] . '*' . (120-$n) ."\n";
        echo $r['lotno'] . '*' . ($n = $r['count'] - (120-$n)) ."\n";
        $s = '';
      }else {
        $s .= "$r[lotno]*$r[count] ";
        $n += $r['count'];
        if($n == 120) {
          echo "$s\n";
          $s = '';
          $n = 0;
        }
      }
    }
    3206*12 3207*63 3218*45
    3218*135
      

  2.   

    $ar = array (
        array( 'lotno' => 3206, 'count' => 12 ),
        array( 'lotno' => 3207, 'count' => 63 ),
        array( 'lotno' => 3218, 'count' => 180 ),
    );
    $a=array(
       array('5'=>120),
       array('5'=>135)
    );foreach($a as $k=>$v)
    {  echo $v['5']."&nbsp;&nbsp;";
        if($v['5']==120){
        
        $c=0;
        foreach(array_slice($ar,0,-1) as $vl){  
        $c+=$vl['count'];
        echo $vl['lotno']."*".$vl['count'] ."&nbsp;";
    }
    $end=end($ar);
    echo $end['lotno'] ."*" . ($sub=$v['5']-$c) .'<br>';
    }
    else if($v['5']==135){
         echo $end['lotno'] ."*" .($end['count']-$sub);
    }