Array ( [0] => 1 OPEN ) Array ( [0] => 2 LEAKAGE_LOW_ODD ) Array ( [0] => 3 LEAKAGE_LOW_EVEN )我想把数组内容分成 [1]=>1 [2]=>OPEN
                   [1]=>2 [2]=>LEAKAGE_LOW_ODD
象这样类似,请问怎么实现?

解决方案 »

  1.   


    //前提是数据都是样本这么规律,都是空格隔开
    $arr = array('2 LEAKAGE_LOW_ODD');
    $arr = array_merge($arr, explode(' ', $arr[0]));
    print_r($arr);
      

  2.   

    $a1 = array ( '1 OPEN' );
    $a2 = array ( '2 LEAKAGE_LOW_ODD' );
    $a3 = array ( '3 LEAKAGE_LOW_EVEN' );function foo($v) {
      return is_array($v) ? split(' ', current($v)) : split(' ', $v);}print_r(array_map('foo', array($a1, $a2, $a3)));$ar = array (
     '1 OPEN',
     '2 LEAKAGE_LOW_ODD',
     '3 LEAKAGE_LOW_EVEN'
     );print_r(array_map('foo', $ar));
      

  3.   


    <?php$g_ArrOrg = Array
    (
    Array( '1 OPEN' ),
    Array( '2 LEAKAGE_LOW_ODD' ),
    Array( '3 LEAKAGE_LOW_EVEN' ),
    );
    $g_ArrNew = Array();foreach ( $g_ArrOrg as $arr )
    {
    foreach ( $arr as $item )
    {
    if ( ! empty( $item ) && strstr( $item, ' ' ) )
    {
    $g_ArrNew[] = explode( ' ', $item );
    }
    }
    }print_r( $g_ArrNew );?>
    运行结果:Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => OPEN
            )    [1] => Array
            (
                [0] => 2
                [1] => LEAKAGE_LOW_ODD
            )    [2] => Array
            (
                [0] => 3
                [1] => LEAKAGE_LOW_EVEN
            ))
      

  4.   


    $ar = array (
     '1 OPEN',
     '2 LEAKAGE_LOW_ODD',
     '3 LEAKAGE_LOW_EVEN'
     );
    foreach($ar as $key=>$value)
    {
     $key=$value[0];
     $value=substr($value,3);
    }
      

  5.   

    我的意思可能没说清楚:
    下面我贴出原数据和代码,最终效果是1=>OPEN 2=>LEAKAGE_LOW_ODD 3=>LEAKAGE_LOW_EVEN 类似这样的格式。原文本:= TEST START : 10/07/04 09:22:41 ** PROGRAM : H524W81D  REV. G.01B    DEVICE TYPE : MICRON  DDR2                                         STATION 1                           STATION 2             
                               00000000 01111111 11122222 22222333 00000000 01111111 11122222 22222333 
    TNO  --------TLBL-------- -12345678-90123456-78901234-56789012-12345678-90123456-78901234-56789012-  ---TIME---
      1  OPEN                : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.40S
      2  LEAKAGE_LOW_ODD     : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
      3  LEAKAGE_LOW_EVEN    : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.80S
      4  LEAKAGE_HIGH_ODD    : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.70S
      5  LEAKAGE_HIGH_EVEN   : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.80S
      6  LEAKAGE_LOW_VREF    : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.70S
      7  LEAKAGE_HI_VREF     : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.80S
      8  IDD2P               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
    XBIN=    12   , IDD6 measurement
      9  IDD6                : **P***** ** ***** ******P* **P***** ******** ******** ******** **P***** 
                             : ******** ******** ******** ******** ******** ******** ******** ********     1.40S
    IDD6-DCLOP =      3   
     10  IDD0                : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     11  IDD1                : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     12  IDD2N               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
     13  IDD2Q               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     14  IDD3P0              : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
     15  IDD3P1              : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     16  IDD3N               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
     17  IDD4R               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     18  IDD4W               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
    READID
    代码:<?php
    set_time_limit(0); 
    date_default_timezone_set(PRC);
    ?>
    <?php
    $TestDataPath = '../testitem/';
    $mydir=dir($TestDataPath.'/');while($file=$mydir->read())

    if(!(is_dir($TestDataPath.'/'.$file)) AND ereg("TestItems",$file))
    {
    $attr = explode('_',$file);
    $attrCount = count($attr);
    if($attrCount == 3)
    $t_pgm = $attr[0];
    $t_pgm_version = $attr[1];

      $myfile = file($TestDataPath.$file);
        $col = explode(" ",trim($myfile[4]));
        $pgm = $col[3];
        $pgm_version = $col[6];
        echo $pgm.'<br />';
        echo $pgm_version.'<br />';
        
        $no = count($myfile);
        for($index = 9;$index < $no;$index++) 
    {    
         if(ereg("READID",$myfile[$index])) 
         break;
         else
         {
         preg_match_all('/^\s*\d+\s+\w+\ +/m',$myfile[$index],$r);
         if(empty($r[0]))
         {
         continue;
         }
         $data = $r[0];
         print_r($data);
         /*
            $testdata =print_r($testdata);
         if($testdata[0] == '') 
            { 
                $testdata = explode("\t",trim($myfile[$index])); 
            }
            if($testdata[0] != '') 
            { 
                $testdata[1] = $testdata[1] +0; 
                $testdata[0] = $testdata[0] +0; 
                $databin[$testdata[0]][$testdata[1]] ++; 
            echo $testdata[0].'==>'.$testdata[1].' <br>';
            }
            */
         } 
      }
    }
    }
    $mydir->close(); ?>
      

  6.   


    //读文件略
    $fileContent = <<<TEXT
    = TEST START : 10/07/04 09:22:41 ** PROGRAM : H524W81D  REV. G.01B    DEVICE TYPE : MICRON  DDR2                                         STATION 1                           STATION 2             
                               00000000 01111111 11122222 22222333 00000000 01111111 11122222 22222333 
    TNO  --------TLBL-------- -12345678-90123456-78901234-56789012-12345678-90123456-78901234-56789012-  ---TIME---
      1  OPEN                : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.40S
      2  LEAKAGE_LOW_ODD     : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
      3  LEAKAGE_LOW_EVEN    : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.80S
      4  LEAKAGE_HIGH_ODD    : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.70S
      5  LEAKAGE_HIGH_EVEN   : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.80S
      6  LEAKAGE_LOW_VREF    : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.70S
      7  LEAKAGE_HI_VREF     : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     0.80S
      8  IDD2P               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
    XBIN=    12   , IDD6 measurement
      9  IDD6                : **P***** ** ***** ******P* **P***** ******** ******** ******** **P***** 
                             : ******** ******** ******** ******** ******** ******** ******** ********     1.40S
    IDD6-DCLOP =      3   
     10  IDD0                : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     11  IDD1                : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     12  IDD2N               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
     13  IDD2Q               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     14  IDD3P0              : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
     15  IDD3P1              : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     16  IDD3N               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
     17  IDD4R               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.00S
     18  IDD4W               : PPPPPPPP PP PPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP 
                             : PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP PPPPPPPP     1.10S
    READID
    TEXT;
    preg_match_all('/(\d+)  ([\w]+)/is', $fileContent, $res);
    $arr = array();
    foreach($res[1] AS $k => $v)
    {
    $arr[$v] = $res[2][$k];
    }
    print_r($arr);
      

  7.   

    额,不是这样的,不是‘键值=>值’
    是把数据分为两段,象 1 OPEN 获得 1,OPEN。只是将array获得的值把它们分开来。
      

  8.   

    没懂…… 这是前面你贴的 “最终效果是1=>OPEN 2=>LEAKAGE_LOW_ODD 3=>LEAKAGE_LOW_EVEN 类似这样的格式”我理解错了,也许别人也会理解错你最终需要什么结果,贴出来看看?
      

  9.   

    Array ( [0] => 1 OPEN ) Array ( [0] => 2 LEAKAGE_LOW_ODD ) Array ( [0] => 3 LEAKAGE_LOW_EVEN )结果类似于:
    Array ( [0] => 1 [1]=>OPEN ) Array ( [0] => 2 [1] => LEAKAGE_LOW_ODD ) Array ( [0] => 3 [1] => LEAKAGE_LOW_EVEN )
      

  10.   

    foreach里的这句改成,下面这样子,能满足要求么?$arr[]    = array($v, $res[2][$k]);
    //Array ( [0] => Array ( [0] => 1 [1] => OPEN ) [1] => Array ( [0] => 2 [1] => LEAKAGE_LOW_ODD ) ……
      

  11.   

    为什么我读程序里是这种结果呢?$no = count($myfile);
    for($index = 9;$index < $no;$index++) 
    {    
     if(ereg("READID",$myfile[$index])) 
     break;
     else
     {
      preg_match_all('/^\s*\d+\s+\w+\ +/m',$myfile[$index],$r);
      if(empty($r[0]))
      {
        continue;
       }
      $testdata = array();
      foreach($r[0] AS $k => $v)
     {
      $testdata[] = array($v, $r[1][$k]);
      }
    print_r($testdata);
    结果是:Array ( [0] => Array ( [0] => 1 OPEN [1] => ) ) Array ( [0] => Array ( [0] => 2 LEAKAGE_LOW_ODD [1] => ) ) Array ( [0] => Array ( [0] => 3 LEAKAGE_LOW_EVEN [1] => ) )
      

  12.   

    我是指我贴的代码里的foreach里的那句改了
      

  13.   

    哦。是我弄错了。不好意思。    $no = count($myfile);
        for($index = 9;$index < $no;$index++) 
    {    
         if(ereg("READID",$myfile[$index])) 
         break;
         else
         {
         preg_match_all('/(\d+)  ([\w]+)/is',$myfile[$index],$r);
         if(empty($r[0]))
         {
         continue;
         }
       $testdata = array();
    foreach($r[1] AS $k => $v)
    {
         $testdata[] = array($v, $r[2][$k]);
    }
    print_r($testdata);
      

  14.   

    顺便问下,提取出"[0]=>1 [1]=>OPEN"的值怎么提?
      

  15.   

    如果按我上面贴的代码运行for($i=0,$n=count($arr);$i<$n;$i++)
    {
      echo $arr[$i][0];//值
      echo $arr[$i][1];//值
    }
      

  16.   

    非常感谢!
    我贴出代码:    $no = count($myfile);
        for($index = 9;$index < $no;$index++) 
    {    
         if(ereg("READID",$myfile[$index])) 
         break;
         else
         {
         preg_match_all('/(\d+)  ([\w]+)/is',$myfile[$index],$r);
         if(empty($r[0]))
         {
         continue;
         }
       $testdata = array();
    foreach($r[1] AS $k => $v)
    {
         $testdata[] = array($v, $r[2][$k]);
    }
    //print_r($testdata);
    for($i=0,$n=count($testdata);$i<$n;$i++)
    {
      $testitem_no = $testdata[$i][0];
      $testitem_info = $testdata[$i][1];
    echo $testitem_no.'==>'.$testitem_info.'<br />';
    }
         } 
      }