• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Armadillo

Converter array multidimensional em unidimensional

7 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mete aí um var_dump() da array multidimensional e dá um exemplo de como a queres (no mesmo formato que o var_dump()).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continua a retornar os vectores dentro de vectores. :(

Podes mostrar o var_dump() do array final da minha função?
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora