Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marceloy

Ordenação de arrays mantendo relacionamento

Recommended Posts

Bom dia,Imagina que tenho duas arrays:$array01 = (2, 3, 1);$array02 = ("Pedro", "João", "José");Como faria para ter um sort tal que o segundo array se ordenasse para a mesma posição do sort do primeiro, ou seja, mantendo o relacionamento, assim:$array01 = (1, 2, 3);$array02 = ("José", "Pedro", "João");obs: procurei no forum, mas nao encontrei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa solução do Thiago é a melhor se o conteúdo do $array01 do seu exemplo tiver sempre elementos diferentes.

 

No caso deles poderem ser iguais (por exemplo, se fosse a idade), você poderia criar um array multi-dimensional mesmo e ordená-lo com a função array_multisort(). Aqui vai um exemplo de como utilizá-la (pois a na documentação está muito mal explicado):

 

$dados = array(
array(
	"nome" => "Pedro",
	"idade" => 21,
),
array(
	"nome" => "João",
	"idade" => 22,
),
array(
	"nome" => "João",
	"idade" => 20,
),
);

// para cada dimensão ordenada, cria-se um array da seguinte forma:
$nome  = array();
$idade = array();
foreach ($dados as $key => $pessoa) {
$nome[$key] = $pessoa["nome"];
$idade[$key] = $pessoa["idade"];
}

array_multisort($nome, $idade, $dados);

// verificando
echo "<pre>".print_r($dados, true)."</pre>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.