Jump to content

Converter array multidimensional em unidimensional


Armadillo

Recommended Posts

Ola pessoal.

Entao e assim , tenho o codigo em php que pesquisa todos os directorios que existem num dado directorio pai.

O que se passa e que o meu algoritmo retorna o resultado num array multidimensional.

Ja tentei utilizar o array_merge mas so me retorna um vector com os valores "array", "array", "array", ........

Existe alguma forma de tornar um array multidimensional em unidimensional?

Ou passar todos os valores existentes numa matriz para um unico array?

Obrigado

Link to comment
Share on other sites

var_dump:

...
array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(13) "../phpmyadmin"
    [1]=>
    array(7) {
      [0]=>
      array(2) {
        [0]=>
        string(17) "../phpmyadmin/css"
        [1]=>
        NULL
      }
      [1]=>
      array(2) {
        [0]=>
        string(16) "../phpmyadmin/js"
        [1]=>
        NULL
      }
      [2]=>
      array(2) {
        [0]=>
        string(18) "../phpmyadmin/lang"
        [1]=>
        NULL
      }
      [3]=>
      array(2) {
        [0]=>
        string(23) "../phpmyadmin/libraries"
        [1]=>
        array(8) {
          [0]=>
          array(2) {
            [0]=>
            string(28) "../phpmyadmin/libraries/auth"
            [1]=>
            NULL
          }
          [1]=>
          array(2) {
            [0]=>
            string(27) "../phpmyadmin/libraries/dbg"
            [1]=>
            NULL
          }
          [2]=>
          array(2) {
            [0]=>
            string(27) "../phpmyadmin/libraries/dbi"
            [1]=>
            NULL
          }
          [3]=>
          array(2) {
            [0]=>
            string(31) "../phpmyadmin/libraries/engines"
            [1]=>
            NULL
          }
          [4]=>
          array(2) {
            [0]=>
            string(30) "../phpmyadmin/libraries/export"
            [1]=>
            NULL
          }
          [5]=>
          array(2) {
            [0]=>
            string(28) "../phpmyadmin/libraries/fpdf"
            [1]=>
            array(1) {
              [0]=>
              array(2) {
                [0]=>
                string(33) "../phpmyadmin/libraries/fpdf/font"
                [1]=>
                NULL
             
...

E eu quero q me apareça assim:

...
array[1] = "../phpmyadmin/css"
array[2] = "../phpmyadmin/js"
array[3] = "../phpmyadmin/lang"
array[4] = "../phpmyadmin/libraries"
array[5] = "../phpmyadmin/libraries/auth"
array[6] = "../phpmyadmin/libraries/dbg"
array[7] = "../phpmyadmin/libraries/dbi"
array[8] = "../phpmyadmin/libraries/engines"
array[9] = "../phpmyadmin/libraries/export"
array[10] = "../phpmyadmin/libraries/fpdf"
array[11] = "../phpmyadmin/libraries/fpdf/font"
...

Obrigado

Link to comment
Share on other sites

Quick and dirty:

function multi2uni($old, &$array){
    foreach($old as $v) if(is_array($v)) multi2uni($old, $array); else $array[] = $v;
}
$old = $array;
$array = array();
multi2uni($old, $array);
var_dump($array);

Deve servir. 🙂

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Agora acho que consegui com outro metodo.

Aí vai:

function listaArray(&$item2, $key)
{

global $pastas;
//echo "$item2<br>\n";

if (!is_array($item2) && !is_null($item2))							//se nao for um vector
	{
	$pastas[]=$item2;							//adiciona item ao vector 
	}
array_walk($item2, 'listaArray');
}
//utilizacao da funcao para converter uma matriz num array0
array_walk($array, 'listaArray');				//retornar apenas as dirs
echo '<pre>';
var_dump ($pastas);
echo '</pre>';

Confirmem por favor...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.