Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom pessoal quebrando a cabeça aqui, e não querendo acreditar que vou ter que fazer gambi, pois o que to imaginando fazer pra que isso funcione nada me tira da cabeça que é gambiarra pois vai dar um pouquinho bom de código pra fazer uma coisa que a linguagem faz, enfim tenho o seguinte array
array( "numero" => 1, "telefone" => 3434, "nome" => sr nalim)
Blz agora eu faço o seguinte:
foreach(array as $keyArray => $value){
$array[] = $keyArray."=".$value;
}
ele me retorna um novo array
array([0]=>numero=1,[1]=>telefone=3434,[2]nome=sr nalim)
só que eu quero pegar aquele $value dentro do foreach e verificar se ele é inteiro ou string dando um gettype($value) ele me diz que todos valores são strings.
Postei um pouco incompleto eu acho... Bom o array é montado de uma query string, essa parte que mostrei já é uma parte meia que tratada, a string vem assim
numero=1&telefone=4343&nome=sr+nalim&codigo=
Assim eu pego e dou um explode("&",$queryString) assim tenho
array([0] => numero=1,[1] => telefone=3434, [2] nome=sr+nalim, [3] => codigo=)
eu vou tratar esse valor mais uma vez, montando um novo array, pois esse citado irá remover os parâmetros vazios na query string com array_filter, ficando igual ao da primeira forma que postei me fazendo chegar e esse erro.
Como o nome sugere "query string" são strings. Melhor que explode é utilizar o que o PHP dispõe: parse_str() ou parse_url().
Nesses casos, o que você pode fazer é validar e converter com is_numeric, ele vai fazer o cast type automaticamente para validar se a string é totalmente numérica.
Muito bom, dei uma olhadas nas funções is_numeric funciona legal, acabei usando o ctype_digit e ficou legalzinho o filtro funcionando legal :) grato pela prontificação em ajudar, acabou que limpei bastante o código deixando ele menor pelas dicas...
Acho que o problema é muito mais a tua estrutura de dados (que o array parece vir de um SGBD) do que o PHP em si. Veja só:
{Saída:
Variável (integer) 3434 Variável (string) sr nalimNão há problema algum com a função gettype. Mas veja que o valor, no seu array, "sr nalim" está sem apóstrofos, o que é impossível pois deve ser uma string. O que garante que os demais também não sejam basicamente strings?