程序要达到以下例子的效果:$arr = Array
(
    '1' => 'bin1|0|0|0|1000|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
    '2' => 'bin2|0|0|0|0|0|2000|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0'
);$arr2 = array(
    1=>array(2,4,6,8),//应显示为  4
    2=>array(3,5,7,22)// 应显示为 -
);
function getMaxCol($arr,$bin)
{
    $k = explode('|',$arr[$bin]);
    array_shift($k);
    return array_search(max($k),$k)+1;
}
foreach($arr2 as $k=>$v)
{
    $col = getMaxCol($arr,$k);
    echo "bin".$k.":".(in_array($col,$v) ? $col : '-')."<br/>";
}以下是我的代码:<?php

$result = mysql_query("SELECT `dutswitch`.ID, `dutswitch`.CustomerLotID, `dutswitch`.state,`dutbin`.Pgm, `dutbin`.`Pgm version`, `dutswitch`.status1, `dutswitch`.status2, `dutbin`.Bin, `dutbin`.TestItem FROM `dutswitch`,`dutbin` WHERE `dutbin`.CustomerLotID=`dutswitch`.CustomerLotID and `dutbin`.State=`dutswitch`.state and `dutswitch`.ID=$id LIMIT 1");
if (mysql_num_rows($result) == 0)
die('Error ID!');
$row = mysql_fetch_array($result);
//print_r($row);

$row_bin = $row['Bin'];
$row_testitem = $row['TestItem'];
$arr = explode(',', $row_testitem); 
  //print_r($arr);
  
function getMaxCol($arr,$bin)
{
    $k = explode('|',$arr[$bin]);
    //array_shift($k);
    //print_r($k);
    return array_search(max($k),$k)+1;
}
?>
<?php
$lines = explode(",",$row_bin);
//print_r($lines);
foreach($lines as $v)
{
    $t = explode('|',$v);
    $k = $t[0];
    $f[$k] = array();
    $f[$k]['bin'] = array_slice($t,1,8);
    $f[$k]['all'] = array_slice($t,9,1);
    $f[$k]['binpercent'] = array_slice($t,10);
}function dut($f,$dut,$s,$e) 

$mp = getMax($f[$dut]['binpercent'],$s-1,$e-1); 
$resultsArray['Dut'] = 'Bin'; 
//echo "the max percent is : ".$mp."(bin%".(array_search($mp,$f[$dut]['binpercent'])+1).")<br/>"; 
//echo $dut."=> bin".(array_search($mp,$f[$dut]['binpercent'])+1)."<br/>"; 
//echo "=================<br/>"; 
if(floatval($mp) != 0 )
return array($dut,array_search($mp,$f[$dut]['binpercent'])+1);
else
{
return array($dut,"-");
}

function getMax($array,$s,$e='')
{
$f = array_splice($array,$s,$e);
$i = 0;
foreach($f as $v){
if(rtrim($v,'%')+0 > rtrim($i,'%')+0){
$i = $v;
}
}
return $i;
}$dutArray = $save; 
if( (($row['3']=='O624W8U6')&&($row['4']=='N.14'))||(($row['3']=='O624XFU6')&&($row['4']=='N.14'))||(($row['3']=='O624W81D')&&($row['4']=='N.14'))||(($row['3']=='O624XF1D')&&($row['4']=='N.14'))||(($row['3']=='O624W83D')&&($row['4']=='N.14'))||(($row['3']=='O624XF3D')&&($row['4']=='N.14'))||
 (($row['3']=='O624W85D')&&($row['4']=='N.14'))||(($row['3']=='O624XF5D')&&($row['4']=='N.14'))||(($row['3']=='O624W88D')&&($row['4']=='N.14'))||(($row['3']=='O624XF8D')&&($row['4']=='N.14')))
{
foreach($dutArray as $v) 

$arr = dut($f,$v,6,8); 
$resultsArray[$arr[0]] = $arr[1]; 

//echo "<pre/>"; 
//echo "Dut Bin<br/>"; 
foreach($resultsArray as $key=>$value) 

//echo $key." Bin".$value."<br/>"; 
}
//print_r($f);
$bin2test_item = array(3=>array(),
 4=>array(),
 5=>array(),
 6=>array(1,2),
   7=>array(7,9,10,11,24,25,26,44,45,47,54,55,56,57,58,59,60,62,63,64,65,68,69,70,71,74,75,76,77,78,79,83,85,86,87,88,89,147,148,149,150),
   8=>array()
 );
//print_r($bin2test_item);
}
else if((($row['3']=='S624W8U6')&&($row['4']=='N.14'))||(($row['3']=='S624XFU6')&&($row['4']=='N.14'))||(($row['3']=='S624W81D')&&($row['4']=='N.14'))||(($row['3']=='S624XF1D')&&($row['4']=='N.14'))||(($row['3']=='S624W83D')&&($row['4']=='N.14'))||(($row['3']=='S624XF3D')&&($row['4']=='N.14'))||
 (($row['3']=='S624W85D')&&($row['4']=='N.14'))||(($row['3']=='S624XF5D')&&($row['4']=='N.14'))||(($row['3']=='S624W88D')&&($row['4']=='N.14'))||(($row['3']=='S624XF8D')&&($row['4']=='N.14')))
{
foreach($dutArray as $v) 

$arr = dut($f,$v,3,8); 
$resultsArray[$arr[0]] = $arr[1]; 
}
foreach($resultsArray as $key=>$value) 

//echo $key." Bin".$value."<br/>"; 
}
$bin2test_item = array(3=>array(33,86),
 4=>array(57,66,82,83,84,90,91,92,100),
 5=>array(68,30),
 6=>array(31,36,38,41,46,47,51,53,55,62,65,79,80,93),
 7=>array(1,160),
 8=>array(2,3,4,5,8,7,9,10,11,12)
 );
//print_r($bin2test_item);
}
else if((($row['3']=='T624W8U6')&&($row['4']=='N.14'))||(($row['3']=='T624XFU6')&&($row['4']=='N.14'))||(($row['3']=='T624W81D')&&($row['4']=='N.14'))||(($row['3']=='T624XF1D')&&($row['4']=='N.14'))||(($row['3']=='T624W83D')&&($row['4']=='N.14'))||(($row['3']=='T624XF3D')&&($row['4']=='N.14'))||
 (($row['3']=='T624W85D')&&($row['4']=='N.14'))||(($row['3']=='T624XF5D')&&($row['4']=='N.14'))||(($row['3']=='T624W88D')&&($row['4']=='N.14'))||(($row['3']=='T624XF8D')&&($row['4']=='N.14')))
{
foreach($dutArray as $v) 

$arr = dut($f,$v,3,8); 
$resultsArray[$arr[0]] = $arr[1]; 
}
foreach($resultsArray as $key=>$value) 

//echo $key." Bin".$value."<br/>"; 
}
$bin2test_item = array(3=>array(61,75,76,99,101,112,113),
 4=>array(31,33,34,50),
 5=>array(48,71,30),
 6=>array(45,46,59,100,105,110),
 7=>array(1,2),
 8=>array(116,118)
 );
}
else if((($row['3']=='O624W8U6')&&($row['4']=='N.14A'))||(($row['3']=='O624XFU6')&&($row['4']=='N.14A'))||(($row['3']=='O624W81D')&&($row['4']=='N.14A'))||(($row['3']=='O624XF1D')&&($row['4']=='N.14A'))||(($row['3']=='O624W83D')&&($row['4']=='N.14A'))||(($row['3']=='O624XF3D')&&($row['4']=='N.14A'))||
 (($row['3']=='O624W85D')&&($row['4']=='N.14A'))||(($row['3']=='O624XF5D')&&($row['4']=='N.14A'))||(($row['3']=='O624W88D')&&($row['4']=='N.14A'))||(($row['3']=='O624XF8D')&&($row['4']=='N.14A')))
{
foreach($dutArray as $v) 

$arr = dut($f,$v,7,8); 
$resultsArray[$arr[0]] = $arr[1]; 
}
foreach($resultsArray as $key=>$value) 

//echo $key." Bin".$value."<br/>"; 
}
$bin2test_item = array(3=>array(),
 4=>array(),
 5=>array(),
 6=>array(),
 7=>array(1,2),
 8=>array(7,9,10,11,24,25,26,44,45,47,54,55,56,57,58,59,60,62,63,64,65,68,69,70,71,74,75,76,77,78,79,83,85,86,87,88,89,147,148,149,150)
 );
}
else if((($row['3']=='S624W8U6')&&($row['4']=='N.14A'))||(($row['3']=='S624XFU6')&&($row['4']=='N.14A'))||(($row['3']=='S624W81D')&&($row['4']=='N.14A'))||(($row['3']=='S624XF1D')&&($row['4']=='N.14A'))||(($row['3']=='S624W83D')&&($row['4']=='N.14A'))||(($row['3']=='S624XF3D')&&($row['4']=='N.14A'))||
 (($row['3']=='S624W85D')&&($row['4']=='N.14A'))||(($row['3']=='S624XF5D')&&($row['4']=='N.14A'))||(($row['3']=='S624W88D')&&($row['4']=='N.14A'))||(($row['3']=='S624XF8D')&&($row['4']=='N.14A')))
{
foreach($dutArray as $v) 

$arr = dut($f,$v,3,8); 
$resultsArray[$arr[0]] = $arr[1]; 
}
foreach($resultsArray as $key=>$value) 

//echo $key." Bin".$value."<br/>"; 
}
$bin2test_item = array(3=>array(33,86),
 4=>array(57,66,82,83,84,90,91,92,100),
 5=>array(68,30),
 6=>array(31,36,38,41,46,47,51,53,55,62,65,79,80,93),
 7=>array(1,160),
 8=>array(2,3,4,5,8,7,9,10,11,12)
 );
}
else
{
foreach($dutArray as $v) 

$arr = dut($f,$v,3,8); 
$resultsArray[$arr[0]] = $arr[1]; 
}
foreach($resultsArray as $key=>$value) 

//echo $key." Bin".$value."<br/>"; 
}
$bin2test_item = array(3=>array(61,75,76,99,101,112,113),
 4=>array(31,33,34,50),
 5=>array(48,71,30),
 6=>array(45,46,59,100,105,110),
 7=>array(1,2),
 8=>array(116,118)
 );
}
?>
<br /><br />
<form name="frm1" method="get" action="detail test.php?action=do">
<input type="hidden" name="id" value="<?php echo $id;?>" />
<table border="0" align="left" cellpadding="0" cellspacing="1" bgcolor="#B0C5FF" width="600">
<tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td bgColor=#cedcff width=30%><strong>Dut</strong></td><td bgColor=#cedcff width=40%><strong>Bin(WRIGHT NT)</strong></td></tr>
<?php
for($i=0;$i<count($save);$i++)
{
?>
<tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td width=30%>
<?php
echo trim($save[$i]);
?>
<td width=70%>
<?php
echo trim("Bin ".$resultsArray[$save[$i]]);
?></td>
<?php
   } 
?>
</tr>
</table>
<table border="0" align="right" cellpadding="0" cellspacing="1" bgcolor="#B0C5FF" width="600"> 
<tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td bgColor=#cedcff width=30%><strong>Bin(WRIGHT NT)</strong></td><td bgColor=#cedcff width=40%><strong>Test Item</strong></td></tr> 
<?php
foreach($bin2test_item as $bin=>$binItem)
{
?>
<tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td width=50%><?php echo "Bin".$bin;?></td><td width=50%>
<?php 
$col = getMaxCol($arr,$k);
//print_r($arr);//问题部分,得不到数据
echo in_array($col,$binItem) ? $col : '-';
?></td></tr>
<?php
}
?>
</table>

解决方案 »

  1.   

    最后一段 print_r($arr);
    输出:Array([0]=>)
      

  2.   

    1.你要生成类似
    $arr = Array
    (
        '1' => 'bin1|0|0|0|1000|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
        '2' => 'bin2|0|0|0|0|0|2000|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0'
    );
    这样的数组,key是bin值.
    2.
    foreach($bin2test_item as $bin=>$binItem)
    {
    ?>
    <tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td width=50%><?php echo "Bin".$bin;?></td><td width=50%>
    <?php 
    //$col = getMaxCol($arr,$k);
    $col = getMaxCol($arr,$bin);//不要直接copy呀....
    //print_r($arr);//问题部分,得不到数据
    echo in_array($col,$binItem) ? $col : '-';
    ?></td></tr>
    <?php
    }
    ?>
      

  3.   

    第一步生成不是通过:
    $row_testitem = $row['TestItem'];
    $arr = explode(',', $row_testitem);这两句实现的吗? 
      

  4.   


    $row_testitem = $row['TestItem'];
    $arr = explode(',', $row_testitem); 
    print_r($arr);
    的结果输出:Array ( [0] => bin1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 [1] => bin2|0|0|0|0|0|53|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|23|0|0|0|0|0|0|78|4|0|0|0|0|480|469|0|312|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 [2] => bin3|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|18|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|220|0|0|0|0|0|0|0|0|0|0|0|0|0|90|406|0|0|0|0|0|0|0|0|0|98|0|0|0|0|0|0|0|0|0|0|0|0|76|0|54|0|0|0|0|0|0|5|0|0|0|97|160|1|1|0|2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 [3] => bin4|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|582|0|366|352|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1527|0|0|0|0|0|0|14|0|0|0|0|0|0|0|0|15|0|0|0|0|0|0|0|0|11|9|0|0|0|0|0|95|81|194|0|23|0|0|0|31|17|125|0|0|0|0|0|0|13|46|23|0|0|0|0|0|0|27|1|0|0|1|2|4|6|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 [4] => bin5|5|0|7|3|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|6200|4454|0|5355|2467|0|2334|0|1873|0|0|1014|0|0|0|1362|2920|1842|1869|0|2011|2612|0|2676|0|1806|0|2645|0|2513|0|1186|1989|0|0|1695|1885|0|2983|0|0|1838|0|0|0|1475|1689|0|0|2599|1086|0|1353|1364|302|0|366|0|0|0|236|1916|1385|1414|0|0|0|0|0|2248|2716|1819|0|0|0|1199|0|0|267|2021|915|0|1539|1562|891|888|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 [5] => bin6|0|0|0|0|0|3|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|993|0|653|254|0|254|0|237|0|0|123|0|0|0|243|764|265|0|0|126|725|0|323|0|293|0|319|0|190|0|17|343|0|0|266|236|0|0|0|0|0|0|0|0|38|47|0|0|367|1702|0|222|232|272|0|305|0|0|0|301|175|289|758|0|0|0|0|0|148|459|348|0|0|0|252|0|0|321|427|81|0|26|16|15|14|0|2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 [6] => bin7|2965|4793|796|218|790|221|354|218|172|172|210|211|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|5848|5767|0|5753|4221|0|2494|0|2433|0|0|2210|0|0|0|3445|5196|2476|3595|0|3151|2481|0|2509|0|2482|0|2502|0|3679|0|3306|2532|0|0|2428|2283|0|2530|0|0|3492|0|0|0|3303|3261|0|0|2530|2002|0|2193|2314|1814|0|1261|0|0|0|1381|2063|1334|2104|0|0|0|0|0|3445|4972|4133|0|0|0|3722|0|0|1534|2489|3004|0|3284|3095|2433|2436|671|667|866|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|2505 [7] => bin8|0|316|313|274|295|120|579|122|300|291|266|274|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1207|1256|0|1214|725|0|475|0|375|0|0|433|0|0|0|677|997|377|437|0|696|464|0|497|0|379|0|502|0|745|0|477|504|0|0|473|442|0|463|0|0|631|0|0|0|692|675|0|0|502|270|0|343|347|242|0|200|0|0|0|178|424|297|365|0|0|0|0|0|743|966|868|0|0|0|473|0|0|220|475|446|0|684|693|357|357|267|392|1095|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 ) 
      

  5.   

    那就处理一下数组,将键值改成对应的bin值.要处理成这样,循环一下$arr把key值根据串里的'bin数字'改动一下.Array( "1" => "bin1|0|2|....." //bin1,key为1
           ,"4" => "bin4|1|3|...." //bin4,key为4)
      

  6.   

    foreach($arr as $key => $value)  这样?
    不太会,望赐教。
      

  7.   

    ....
    动动手就有啦.foreach($arr as $k=>$v)
    {
    preg_match("/^bin(\d+)\|.*$/i",$v,$m);
    $temp[$m[1]] = $v;
    }
    $arr = $temp;
    $temp = null;
    print_r($arr);
      

  8.   

    看来数组真的不熟,还得加强练习。另外第二点我的输出不正常啊。结果为:Bin(WRIGHT NT) Test Item
    Bin3 -
    Bin4 -
    Bin5 -
    Bin6 -
    Bin7 1
    Bin8 -
    实际的结果bin5那项应该为30。是不是这块有问题?<table border="0" align="right" cellpadding="0" cellspacing="1" bgcolor="#B0C5FF" width="600"> 
    <tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td bgColor=#cedcff width=30%><strong>Bin(WRIGHT NT)</strong></td><td bgColor=#cedcff width=40%><strong>Test Item</strong></td></tr> 
    <?php
    foreach($bin2test_item as $bin => $binItem)
    {
    ?>
    <tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'"><td width=50%><?php echo "Bin".$bin;?></td><td width=50%>
    <?php 
    //$col = getMaxCol($arr,$k);
    $col = getMaxCol($arr,$bin);
    //print_r($arr);
    echo in_array($col,$binItem) ? $col : '-';
    ?></td></tr>
    <?php
    }
    ?>
    </table>
      

  9.   

    如果用了 array_shift($k);
    会报warning。怎么回事?
      

  10.   

    调试一下getMaxCol函数,很简单的东西.
      

  11.   

    我试了下:foreach($arr as $k=>$v)
    {
       preg_match("/^bin(\d+)\|.*$/i",$v,$m);
       $temp[$m[1]] = $v;
    }
    $arr = $temp;
    $temp = null;
    //print_r($arr);
      
    function getMaxCol($arr,$bin)
    {
        $k = explode('|',$arr[$bin]);
        print_r($k);//获得的结果:Array ( [0] => ) 
        //array_shift($k);
        return array_search(max($k),$k)+1;
    }为什么值没有传过来?
      

  12.   

    和这个简单例子比对一下,到底哪里出了问题....
    $arr = array(
    0=>"bin1|0|6|3",
        1=>"bin2|0|1|4"
    );
    foreach($arr as $k=>$v)
    {
    preg_match("/^bin(\d+)\|.*$/i",$v,$m);
    $temp[$m[1]] = $v;
    }
    $arr = $temp;
    $temp = null;
        function getMaxCol($arr,$bin)
    {
        $k = explode('|',$arr[$bin]);
        //print_r($k);//获得的结果:Array ( [0] => ) 
        array_shift($k);
        return array_search(max($k),$k)+1;
    }
    echo getMaxCol($arr,1);//最大值是6,在位置2,所以输出2
    echo getMaxCol($arr,2);//最大值是4,在位置3,所以输出3
      

  13.   

    没有发现哪里出了问题,如果仅仅把array_shift($k);注释掉,那顶多也只是返回值不同。不会获取不到值