被数组给弄晕了,先看代码:
$a[0]=array('id'=>1,'name'=>'a');
$a[0][1]=array('id'=>2,'name'=>'b');
我现在应该如何写代码,才能得到:<m>id:1,name:a 
<m>id:2,name:b</m>
</m>

解决方案 »

  1.   

    直接用数组下标不就行了 $a[0]['id'] ....
      

  2.   

    <?
    $a[0]=array('id'=>1,'name'=>'a');
    $a[0][1]=array('id'=>2,'name'=>'b');function traverse($pA)
    {
    $string = '';
    if ( is_array($pA) )
    {
    if ( isset($pA['id']) && isset($pA['name']))
    $string = "id:{$pA['id']},name:{$pA['name']}";

    foreach ( $pA as $value )
    {
    if ( is_array($value) )
    {
    $string .= "\n<m>".traverse($value)."</m>\n";
    }
    }
    }

    return $string;
    }echo traverse($a,0);?>
      

  3.   

    这写错了echo traverse($a,0); 应该是echo traverse($a);
    呵呵,手误
      

  4.   

    $a[0]=array('id'=>1,'name'=>'a');
    $a[0][1]=array('id'=>2,'name'=>'b');
    foo($a);function foo($ar) {
      echo '<m>';
      foreach($ar as $t) {
        if(is_array(current($t))) {
          foo($t);
        }else {
          $ch = '';
          foreach($t as $i=>$t) {
            echo "$ch$i:$t";
            $ch = ',';
          }
        }
      }
      echo '</m>';
    }
      

  5.   

    上面执行的结果:<m>id:1,name:a,1:Array</m>
      

  6.   

    呵呵,没有测试,有点想当然了.
    这样就对了!!!$a[0]=array('id'=>1,'name'=>'a');
    $a[0][1]=array('id'=>2,'name'=>'b');
    foo($a);function foo($ar) {
      $ch = '';
      foreach($ar as $i=>$t) {
        if(is_array($t)) {
          echo '<m>';
          foo($t);
          echo '</m>';
        }else {
          echo "$ch$i:$t";
          $ch = ',';
        }
      }
    }
      

  7.   

    [PHP] 
    $flsearch=array("姓名"=>array("name"),"地址"=>array("dz"),"编号"=>array("id"));
    while ( list( $key, $val ) = each( $flsearch ) ) {
      echo "$key => $val<br>";
    }