Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Tenho uma consulta em uma tabela que me retorna alguns dados de relacionamento entre possiveis itens.
Alguns exemplos retorno são:
{1005} AND ({1045} OR {1046} OR {1047})
{1045} OR {1046} OR {1047}
{1038} OR {1037}
{1002}
...
Os dados estão cadastrados exatamente dessa forma.
Tenho um array on armazeno os id dos itens selecionados pelo usuário.
Gostaria de fazer uma comparação dos id selecionados e compar com algumas dessas regras.
Por exemplo, usando o primeiro caso.
Em meu array de selecionados eu tenho que ter o id 1005e um outro id qualquer dos que estão dentro de ().
{-1005-} AND ({1045} OR {-1046-} OR {1047})
array(1005, 1046)
>
não ficou muito claro o problema, mas pelo que entendi, array_diff deve lhe ajudar:
http://php.net/manual/en/function.array-diff.php
Preciso comparar a resultado de uma consulta, que retorna uma string como descrevi acima, com um array de ids selecionados.
Como nessa string possuo "AND" e "OR" preciso usar operadores logicos na comparação do array (eu acho).
O problema esta quando tenho algo com "OR" logo apos um "AND", porque tenho que checar se algum dos id esta no array.
Quando possuo um resultado com apenas "AND" ou apenas "OR" consigo fazer a verificação com o in_array().
Mas nesse caso estou com dificuldades.
não ficou muito claro o problema, mas pelo que entendi, array_diff deve lhe ajudar:
http://php.net/manual/en/function.array-diff.php