joaorr1 Posted September 11, 2012 at 05:28 PM Report #475112 Posted September 11, 2012 at 05:28 PM olá estou com um problema ao qual não consigo arranjar solução! Tenho este código que recebe os valores de modo serialize por via jquery para esta página php. Recebe todos os dados do form por POST e estou a correr todos os dados do formulário e a inserir eles num array. O problema é que me insere em arrays separado. O meu objectivo era simplesmente ter os dados num só array ou pelo menos correr todos os $_POST['nome'][0]; $_POST['nome'][1]; $_POST['nome'][2]; ou seja lá quantos forem selecionados anteriormente e vereficar se um nome deles se repete dá erro. Seja o $_POST['nome'][1]; com o $_POST['nome'][5]; Não poderão haver nomes iguais. O meu problema é que ele corre o valor neste for nome por nome de modo injectivo e eu não consigo fazer verificação se o anterior ou seguinte são iguais para então dar resposta erro. for($a=0;$a<sizeof($_POST['nome']);$a++) { $arr = array( "nome" => $_POST['nome'][$a], "id" => $_POST['id'][$a], "gramas" => $_POST['gramas'][$a] ); } Se alguem tiver disponibilidade para me ajudar, agradecia. Cumprimentos.
HappyHippyHippo Posted September 11, 2012 at 07:21 PM Report #475120 Posted September 11, 2012 at 07:21 PM a maneira mais simples é : 1º - criar uma array dos elementos a tratar de uma forma mais "estruturada" (não obrigatório) 2º - ordenar o array 3º - comparar os elementos adjacentes $res = array(); $repetido = false; // agrupar a informação (não obrigatório mas sempre ajuda mais tarde a tratar a informação) foreach ($_POST['nome'] as $i => $v) { $res[] = array('nome' => $_POST['nome'][$i], 'id' => $_POST['id'][$i], 'gramas' => $_POST['gramas'][$i]); } // ordenar a informação usort($res, function($a, $b) { if ($a['nome'] == $b['nome']) return 0; return ($a['nome'] < $b['nome']) ? -1 : 1; }); // verificar existência de repetidos (estão obrigatoriamente juntos) for ($i = 1; $i < count($res) && !$repetido; $i++) { if ($res[$i]['nome'] == $res[$i - 1]['nome']) $repetido = true; } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
joaorr1 Posted September 11, 2012 at 09:29 PM Author Report #475142 Posted September 11, 2012 at 09:29 PM Muito obrigado por tudo!!!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now