Quantas vezes você não se perguntou como gravar um array em uma tabela mysql, como por exemplo, em uma lista de pedidos como gravar os pedidos em apenas uma linha a se desse para gravar um array.
Espere um pouco eu posso transformar em uma string e gravar depois quando faço a leitura é só transformar em array novamente, o pensamento é esse mesmo porem muitos usam
explode() e
implode() para isso, como diriam você não está fazendo isso direito.
A forma errada seria:
$meuArray = array (‘limão’, ‘abacate’, ‘pera’) ;
$agoraString = implode(‘*’, $meuArray) // no caso estamos usando * para separar os valores
echo $agoraString; // retornaria “limão*abacate*pêra”
Na hora de usar ficaria:
$devoltaArray = explode(‘*’, $meuArray) // no caso estamos usando * para separar os valores
Onde:
$devoltaArray = array (‘limão’, ‘abacate’, ‘pera’) ;
Ok funcionou, mas e ai? Só que o php já está preparado para essa situação, pois digamos que nos valores um deles tenha ‘*’ já é o suficiente para estragar tudo, certo, mas posso utilizar uma sequência de caracteres que nunca vão aparecer juntos.
Como sempre digo para que simplificar se agente pode complicar rsrsrsrs
Nem queria imaginar como ficaria sua tabela naquela formar fora que hora você utiliza “*” outra usa “;” outra “:” até uns “£§” eu já vi, que tal organizar tudo isso e fazer corretamente!
É bem mais rápido que ler todo esse texto que escrevi, o php disponibiliza as funções serialize e unserialize exatamente para isso.
Como usar? Simples!
Quando for gravar um array use:
$gravandoArray = serialize($meuArray);
E para ler:
$meuArray = unserialize ($arrayEmMysql);
Simples não é, até aproxima.