PHP многомерный массив - PullRequest
       18

PHP многомерный массив

0 голосов
/ 09 марта 2011
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

Ответы [ 4 ]

7 голосов
/ 09 марта 2011

Вы можете просто написать рекурсивную функцию для автоматической конкатенации ключей вместе.

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);
2 голосов
/ 09 марта 2011
 $str = array();
foreach($array as $key1 => $value1)
{
   foreach($value1 as $key2 => $value2)
   {
     foreach($value2 as $key3 => $value3)
        $str[]= $key1.$key2.$key3;
   }
}

echo implode(',', $str);
0 голосов
/ 06 октября 2016
<?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>";            
        }
    }
?>
0 голосов
/ 06 октября 2016

Многомерный массив в 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>";    
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...