Ir para conteúdo

POWERED BY:

Arquivado

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

can

mover array

Recommended Posts

<?php
$arr = array('a', 'b', 'c');
//Reverte - primeiro ultima ultimo primeiro
function changeFtoEvc($array){
	reset($array);
	$b =& current($array);
	$e =& end($array);
	$array[key($array)] = $b;
	reset($array);
	$array[key($array)] = $e;
	return $array;
}
//Ultimo para primeira
function changeEtoF($array){
	reset($array);
	end($array);
	$e = current($array);
	unset($array[key($array)]);
	reset($array);
	$array[key($array)] = $e;
	return $array;
}
//Primeiro para ultima
function changeFtoE($array){
	reset($array);
	$b = current($array);
	unset($array[key($array)]);
	end($array);
	$array[key($array)] = $b;
	rsort($array);
	reset($array);
	return $array;
}
var_dump(changeFtoEvc($arr));
echo '<br />';
var_dump(changeFtoE($arr));
echo '<br />';
var_dump(changeEtoF($arr));
?>

Fui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

so que aki ele ta mechendo em todas posicao só quero mecher na ultima

 

ex: tenho um array assim

 

Array

(

['teste1'] => a

['teste2'] => b

['teste3'] => c

['teste4'] => d

)

 

ai quero mover o ultimo elemento ai ficaria assim

 

Array

(

['teste4'] => d

['teste1'] => a

['teste2'] => b

['teste3'] => c

)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria assim:

 

$arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
$size = count($arr);
$tmp = end($arr);

echo "<pre>"; print_r($arr); echo "</pre>";

for ($i = ($size - 1); $i > 0; $i--)
{
	$arr[$i] = $arr[$i - 1];
}
$arr[0] = $tmp;

echo "<pre>"; print_r($arr); echo "</pre>";

Acho simples e claro

Compartilhar este post


Link para o post
Compartilhar em outros sites

O jeito do fabyo é bem funcional...inclusive recomendado...

Beraldo...se o array for associativo...não vai funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O jeito do fabyo é bem funcional...inclusive recomendado...

Concordo.

Fabão é o Mestre do PHP.

Espero chegar lá um dia http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

Beraldo...se o array for associativo...não vai funcionar...

Não,mesmo.

Não pensei nessa possibilidade na hora de postar.... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz da forma que fabio falou mas tive um problema

 

<?php

 

// seu array

$array = array("um"=>1,"dois"=>2,"trez"=>3);

 

$d = array_pop($array);

array_unshift($array, $d);

 

// imprime o array

echo "<pre>";

print_r($array);

echo "</pre>";

?>

 

ele ta exibindo assim

 

Array

(

[0] => 3

[um] => 1

[dois] => 2

)

 

 

 

deveria exibir assim

 

 

 

 

Array

(

[tres] => 3

[um] => 1

[dois] => 2

)

 

valeu..

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

// seu array

$array = array(2,3,1);

 

// funcao end pega o ultimo elemento do array, e a funcao array_unshift adiciona um elemento no inicio do array

array_unshift($array, end($array));

 

// array_pop retira um elmento do final do array

array_pop($array);

 

// imprime o array

echo "<pre>";

print_r($array);

echo "</pre>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao dessa forma da certo so que se eu der um nome pro indice aparece errado

 

<?php

 

 

$array = array("um"=>1,"dois"=>2,"trez"=>3);

 

$d = array_pop($array);

array_unshift($array, $d);

 

 

echo "<pre>";

print_r($array);

echo "</pre>";

?>

 

tenta dessa forma voce vai entender melhor o quero dizer

 

 

ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já entendi...eis:

<?php
$a = array('a' => 'b', 'c' => 'd', 'e' => 'f');
function changeFtoI($arr){
	reset($arr);
	$e =& end($arr);
	$ke =& key($arr);
	unset($arr[key($arr)]);
	$arr2 = array($ke => $e);
	return array_merge($arr2, $arr);
}
echo '<pre>';
print_r(changeFtoI($a));
echo '</pre>';
?>

Output:

Array
(
	[e] => f
	[a] => b
	[c] => d
)

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais um exemplo:

 

$array = array("um" => 1, "dois" => 2, "trez" => 3);
$array2[end(array_keys($array))] = end(array_values($array));
array_pop($array);
$arr = array_merge($array2, $array);
print_r($arr);

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.