本帖最后由 lazygc520 于 2013-08-21 14:16:17 编辑

解决方案 »

  1.   

    就是需要$a[x][1]==$b[x][1]吧?还有个空格,不能直接判断呢……
    先偷懒一下,想想,估计不一会就有别人写出来了 
      

  2.   

    那把原数据再改一下,数组a变成:array(4) {
      [0]=>
      array(3) {
        [0]=>
        string(13) "SU13080800340"
        [1]=>
        string(11) "310F6 1VA5A"
        [2]=>
        string(1) "3"
      }
      [1]=>
      array(3) {
        [0]=>
        string(13) "SU13080800345"
        [1]=>
        string(11) "310F6 1VA5A"
        [2]=>
        string(2) "23"
      }
      [2]=>
      array(3) {
        [0]=>
        string(13) "SU13080800338"
        [1]=>
        string(11) "310F6 1VA5A"
        [2]=>
        string(1) "3"
      }
      [3]=>
      array(3) {
        [0]=>
        string(13) "SU13080800346"
        [1]=>
        string(11) "310F6 1VA5A"
        [2]=>
        string(2) "25"
      }
    }
      

  3.   

    让你贴 var_export 的结果,你却偏要贴 var_dump 的结果
    既然你要为难我们,那就给个示意代码吧$a = array(
      'SU13080800340',
      'SU13080800345',
    );
    $b = array(
      "CVT121015001",
      "CVT121015002",
      "CVT121226001",
      "CVT121226002",
      "CVT121226003",
      "CVT121226005",
    );
    foreach($a as $k) $res[$k] = array_splice($b, 0, 3);
    print_r($res);Array
    (
        [SU13080800340] => Array
            (
                [0] => CVT121015001
                [1] => CVT121015002
                [2] => CVT121226001
            )    [SU13080800345] => Array
            (
                [0] => CVT121226002
                [1] => CVT121226003
                [2] => CVT121226005
            ))
      

  4.   

    额,var_export和var_dump的区别?
    //数组a
    array (
      0 => 
      array (
        0 => 'SU13080800340',
        1 => '310F6 1VA5A',
        2 => '3',
      ),
      1 => 
      array (
        0 => 'SU13080800345',
        1 => '310F6 1VA5A',
        2 => '23',
      ),
      2 => 
      array (
        0 => 'SU13080800338',
        1 => '310F6 1VA5A',
        2 => '3',
      ),
      3 => 
      array (
        0 => 'SU13080800346',
        1 => '310F6 1VA5A',
        2 => '25',
      ),
    //数组b
    array (
      0 => 
      array (
        0 => 'CVT121015001',
        1 => '310F6 1VA5A',
      ),
      1 => 
      array (
        0 => 'CVT121015002',
        1 => '310F6 1VA5A',
      ),
      2 => 
      array (
        0 => 'CVT121226001',
        1 => '310F6 1VA5A',
      ),
      3 => 
      array (
        0 => 'CVT121226002',
        1 => '310F6 1VA5A',
      ),
      4 => 
      array (
        0 => 'CVT121226003',
        1 => '310F6 1VA5A',
      ),
      5 => 
      array (
        0 => 'CVT121226005',
        1 => '310F6 1VA5A',
      ),
      6 => 
      array (
        0 => 'CVT130530033',
        1 => '310F6 1VA5A',
      ),
      7 => 
      array (
        0 => 'CVT130530034',
        1 => '310F6 1VA5A',
      ),
    )
      

  5.   

    你没有看到 var_export 的结果是符合 php 的语法的吗?
      

  6.   

    实际情况中,0,3不是固定的。求解方案,按照4#的var_export的结果。
      

  7.   


    请问这句是什么意思?
    foreach($a as $k) $res[$k] = array_splice($b, 0, 3);
      

  8.   

    foreach($a as $k) //遍历数组 $a
      $res[$k] = array_splice($b, 0, 3); //依次从 $b 中取出前3个元素,并删去 $b 的相应元素你说 3 不是固定的,那么该是多少你没有说
    如果是 $a[x] 的下标2,那么你的 $b 的数量远远不够
      

  9.   


    如果$a[$x][2]是每笔的对应数量,那么是不是$b的数量一定要满足?不满足的话是否会报错?能否按一定满足的情况来写个例子?
      

  10.   

    假设$a数组这样吧:
    //数组a
    array (
      0 => 
      array (
        0 => 'SU13080800340',
        1 => '310F6 1VA5A',
        2 => '3',
      ),
      1 => 
      array (
        0 => 'SU13080800338',
        1 => '310F6 1VA5A',
        2 => '3',
      ),这样的话怎么处理?
      

  11.   

    稍微改下楼上的例子假设$a数组这样吧:
    //数组a
    array (
      0 => 
      array (
        0 => 'SU13080800340',
        1 => '310F6 1VA5A',
        2 => '3',
      ),
      1 => 
      array (
        0 => 'SU13080800338',
        1 => '310F6 1VA5A',
        2 => '4',
      ),这样的话怎么处理?
      

  12.   

    你不是装箱吗?难道允许空箱出库?
    举例时应尽肯能简化问题,但也不能简化到不合常理
    $a = array (
      0 => 
      array (
        0 => 'SU13080800340',
        1 => '310F6 1VA5A',
        2 => '3',
      ),
      1 => 
      array (
        0 => 'SU13080800345',
        1 => '310F6 1VA5A',
        2 => '23',
      ),
      2 => 
      array (
        0 => 'SU13080800338',
        1 => '310F6 1VA5A',
        2 => '3',
      ),
      3 => 
      array (
        0 => 'SU13080800346',
        1 => '310F6 1VA5A',
        2 => '25',
      ),
    );//数组b
    $b = array (
      0 => 
      array (
        0 => 'CVT121015001',
        1 => '310F6 1VA5A',
      ),
      1 => 
      array (
        0 => 'CVT121015002',
        1 => '310F6 1VA5A',
      ),
      2 => 
      array (
        0 => 'CVT121226001',
        1 => '310F6 1VA5A',
      ),
      3 => 
      array (
        0 => 'CVT121226002',
        1 => '310F6 1VA5A',
      ),
      4 => 
      array (
        0 => 'CVT121226003',
        1 => '310F6 1VA5A',
      ),
      5 => 
      array (
        0 => 'CVT121226005',
        1 => '310F6 1VA5A',
      ),
      6 => 
      array (
        0 => 'CVT130530033',
        1 => '310F6 1VA5A',
      ),
      7 => 
      array (
        0 => 'CVT130530034',
        1 => '310F6 1VA5A',
      ),
    );foreach($a as $v) {
      $t = array();
      while($v[2]-- && $b) {
        if($b[0][1] == $v[1]) {
          $t[] = $b[0][0];
          array_shift($b);
        }
      }
      $res[$v[0]] = $t;
    }
    print_r($res);Array
    (
        [SU13080800340] => Array
            (
                [0] => CVT121015001
                [1] => CVT121015002
                [2] => CVT121226001
            )    [SU13080800345] => Array
            (
                [0] => CVT121226002
                [1] => CVT121226003
                [2] => CVT121226005
                [3] => CVT130530033
                [4] => CVT130530034
            )    [SU13080800338] => Array
            (
            )    [SU13080800346] => Array
            (
            ))