can 0 Denunciar post Postado Dezembro 5, 2008 como eu faco pra mover só o ultimo elemento do array para primeira posicao. se alguem souber Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Dezembro 5, 2008 <?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
can 0 Denunciar post Postado Dezembro 5, 2008 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
Beraldo 864 Denunciar post Postado Dezembro 5, 2008 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
Fabyo 66 Denunciar post Postado Dezembro 6, 2008 Bom um jeito mais simples ainda $d = array_pop($array); array_unshift($array, $d); Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Dezembro 6, 2008 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
Beraldo 864 Denunciar post Postado Dezembro 6, 2008 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
can 0 Denunciar post Postado Dezembro 7, 2008 fiz da forma que o fabio faloe mas ele ta exibindo a quantidade o do array, Compartilhar este post Link para o post Compartilhar em outros sites
can 0 Denunciar post Postado Dezembro 7, 2008 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
visitante_php 0 Denunciar post Postado Dezembro 7, 2008 <?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
can 0 Denunciar post Postado Dezembro 7, 2008 entao dessa forma tambem fica igual o do fabyo o array fica certo mas o indice fica errado ... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 7, 2008 Como você fez? Aqui deu certo: <?php $array = array('a', 'b', 'c'); $d = array_pop($array); array_unshift($array, $d); print_r($array); ?> saída Array ( [0] => c [1] => a [2] => b ) Compartilhar este post Link para o post Compartilhar em outros sites
can 0 Denunciar post Postado Dezembro 7, 2008 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
eibon 2 Denunciar post Postado Dezembro 7, 2008 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
Fabyo 66 Denunciar post Postado Dezembro 7, 2008 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