Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Armadillo

Converter array multidimensional em unidimensional

Mensagens Recomendadas

Armadillo    0
Armadillo

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Armadillo    0
Armadillo

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
djthyrax    11
djthyrax

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. :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Armadillo    0
Armadillo

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...

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade