Caso você necessite embaralhar os elementos de um array, não é preciso pensar em um algoritmo que faça isso automaticamente. Você pode fazer uso da função shuffle, da seguinte forma:

<?php
$elementos = array('Banana', 'Maça', 'Pêra', 'Abacate', 'Limão', 'Laranja', 'Abacaxi', 'Morango');
shuffle($elementos);
print_r($elementos);
?>

Exibindo a impressão deste código, obtive o seguinte retorno:

Array ( [0] => Pêra [1] => Banana [2] => Maça [3] => Morango [4] => Abacate [5] => Abacaxi [6] => Laranja [7] => Limão )

Executando novamente o código, obtive o retorno:

Array ( [0] => Morango [1] => Limão [2] => Abacate [3] => Laranja [4] => Banana [5] => Pêra [6] => Maça [7] => Abacaxi )

Como é possível notar, a função shuffle realmente embaralha aleatoriamente os elementos.


Outras dicas de PHP


Apagando variáveis de sessão

array_reverse - Invertendo um vetor

array_search - Procurando um item em um array

Capturando a extensão de um arquivo

Capturando dados de um checkbox

Casts - Convertendo tipos de dados

ceil - Arredondando números reais para cima

checkdate - Validando datas no código PHP

Como desabilitar checkbox

Como desabilitar um radiobutton

Como permitir somente o upload de imagens

Como remover espaços em branco de uma string

Como validar o upload de um arquivo via POST

Convertendo caracteres com acento para maiúsculo com mb_strtoupper

Corrigindo a formatação da página para exibir acentos

Corrigindo o erro 'invalid byte sequence for encoding' ao acessar o Postgres

Criando e lendo um cookie em PHP

Criando variáveis de sessão

Date - Exibindo horário em formato hh:mm:ss

define - Criando constantes

Desabilitando as mensagens de Deprecated Functions

empty - Verificando se variável está vazia

Entendendo as diferenças entre os comandos include e require

Entendendo as diferenças entre os comandos include_once e require_once

Exibindo uma imagem após o post

floor - Arredondando números reais para baixo

gettype - Obtendo o tipo de dado de uma variável

Impedindo SQL Injection

Imprimindo Arrays

join - Convertendo um array em string

max - Encontrando o maior elemento de um vetor

min - Encontrando o menor elemento de um vetor

mt_rand - Gerando números randômicos

number_format - Formatando números

Operador ternário

Passando caracteres especiais por GET

Passando dados por QueryString

Permitindo o upload somente de arquivos PDF e do Word

Redirecionando para outras páginas

Removendo acentos em PHP

Removendo cookies em PHP

Retornando para a página anterior

Round - Arredondando números float

Rsort - Ordenando os itens de um vetor em ordem alfabética decrescente

session_write_close - gravando dados e fechando a sessão

shuffle - Embaralhando elementos de um array

Sizeof - Contando os elementos de um vetor

Sort - Ordenando os itens de um vetor

strtolower - Deixando todos os caracteres em minúsculo

strtoupper - Deixando todos os caracteres em maiúsculo

str_replace - Substituindo caracteres em uma string

Trabalhando com datas em PHP

ucfirst - Deixando o primeiro caractere sempre maiúsculo

ucwords - Deixando o primeiro caractere de cada palavra maiúsculo

unset - Excluindo variáveis

unset - Removendo elementos de um array

var_dump - Analisando as variáveis

Você Sabia?

Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.


Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.


A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.


Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.


O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.