这样改后可以显示了,但又有一个问题出来了,当把201,301,4001,50001,改成001,0001,00001,000001后,为什么'0'不显示出来呢?
<?
function foo()
{
   $ew=array(
     one=>array('pid'=>0,'pic'=>1,'pop'=>2,'pdf'=>3),
 two=>array('pid'=>00,'pic'=>201,'pop'=>02,'pdf'=>03),
 three=>array('pid'=>000,'pic'=>301,'pop'=>002,'pdf'=>003),
 four=>array('pid'=>0000,'pic'=>4001,'pop'=>0002,'pdf'=>0003),
 five=>array('pid'=>00000,'pic'=>50001,'pop'=>00002,'pdf'=>00003),
 );
   $a=count($ew);
   foreach($ew as $key=>$val)
   {
     /*foreach($val as $v)
 {
    for($i=0;$i<$a;$i++)
     {
       echo $val[$i]['pic'];
     }
 }*/
 echo $ew[$key]['pic']."<br>";
   };
   return;
}
?>

解决方案 »

  1.   

    <?
    function foo()
    {
       $ew = array(
         'one' => array('pid' => '0', 'pic' => '1', 'pop' => '2', 'pdf' => '3'),
     'two' => array('pid' => '00', 'pic' => '01', 'pop' => '02', 'pdf' => '03'),
     'three' => array('pid' => 000, 'pic' => '001', 'pop' => '002', 'pdf' => '003'),
     'four' => array('pid' => 0000, 'pic' => '0001', 'pop' => '0002', 'pdf' => '0003'),
     'five' => array('pid' => 00000, 'pic' => '00001', 'pop' => '00002', 'pdf' => '00003'),
     );
       $a = count($ew);
    if( is_array($ew) )
    {
    while( list($key,$val) = each($ew) )
    {
    print $key.'<br>';
    if( is_array($ew[$key]) )
    {
    while( list($key2,$val2) = each($ew[$key]) )
    {
    $ew[$key][$key2] = $val2; 
    print $key2.'=>'.$ew[$key][$key2].'<br>';
    }
    @reset($ew[$key]);
    }
    else
    {
    $ew[$key] = addslashes($val);
    }
    }
    @reset($ew);
    }
       return;
    }
    foo();
    ?>