繁体   English   中英

PHP多维数组

[英]PHP multi dimensional Array

Array
(
    [a] => Array
        (
            [a] => Array
                (
                    [a] => a
                    [b] => b
                )

            [b] => Array
                (
                    [a] => a
                    [b] => b
                )

        )

    [b] => Array
        (
            [a] => Array
                (
                    [a] => a
                    [b] => b
                )

            [b] => Array
                (
                    [a] => a
                    [b] => b
                )

        )

)

如何从上面的数组下面得到一个字符串?

aaa,aab,aba,abb,baa,bab,bba,bbb

您可以简单地编写一个递归函数以将键自动串联在一起。

function getKeysString($array, $prefix = '') {  
  $keys = array();

  foreach($array as $key => $value) {
    $str = $prefix.$key;

    if(is_array($value)) {
      $str = getKeysString($value, $str);
    }

    $keys[] = $str;
  }

  return implode(',', $keys);
}

因此,给定数组:

$arr = array (
  'a' => array (
    'a' => array (
      'a' => null,
      'b' => null
    ),
    'b' => array (
      'a' => null,
      'b' => null
    )
  ),
  'b' => array (
    'a' => array (
      'a' => null,
      'b' => null
    ),
    'b' => array (
      'a' => null,
      'b' => null
    )
  )
);

以下内容将为您提供所需的结果:

$result = getKeysString($arr);
 $str = array();
foreach($array as $key1 => $value1)
{
   foreach($value1 as $key2 => $value2)
   {
     foreach($value2 as $key3 => $value3)
        $str[]= $key1.$key2.$key3;
   }
}

echo implode(',', $str);

PHP中的多维数组

$Student = array(array("Adam",10,10),

                array("Ricky",10,11),

                array("Bret",15,14),

                array("Ram",14,17)
          );

for($i=0;$i<=3;$i++){

    for($j=0;$j<=2;$j++){
        print_r($Student[$i][$j]);

        echo "<br>";    
    }
}
<?php    
     $Student = array(array("Adam",10,10,10),    
                      array("Ricky",10,11,10),    
                      array("Bret",15,14,10),    
                      array("Ram",14,17,10)
                     );

    for($i=0;$i<=3;$i++){    
        for($j=0;$j<=3;$j++){    
                print_r($Student[$i][$j]);    
                echo "<br>";            
        }
    }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM