Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou precisando que um usuário me envie informações de numeros e textos.
Essas informações de numeros, podem ser varios numeros ou apenas 1. As informações de texto podem ser apenas 1 ou varias, mas sempre se for varias, vai ser na mesma quantidade de indices de números.
Em resumo, estou fazendo um sistema onde um usuario pode mandar uma mensagem unica para varios destinatários ou mensagens personalizadas para varios destinatarios.
Sabendo disso eu fiz o seguinte:
<?php
$numero = array('1111111111','222222222','3333333333','44444444444','55555555'); //SEMPRE FICARA EM ARRAY
$texto = "mensagem unica"; //PODERÁ FICAR EM STRING OU ARRAY
foreach($numero as $key => $value){
//SE FOR MENSAGEM UNICA, UTILIZO STRING, SE FOR VARIAS MENSAGENS, UTILIZO ARRAY
if(is_array($texto)){
$msg = $texto[$key]; //SE FOR ARRAY O Nº DE INDICES DE TEXTO SERA SEMPRE IGUAL AO MESMO Nº DE INDICES DE NUMEROS
}else{
$msg = $texto; //SE NAO FOR ESPECIFICADO COMO ARRAY UTILIZO COMO STRING
}
echo "<br> {$value} - {$msg} <br>";
}
?>
Agora o que seria melhor?
Continuar utilizando desta forma, ou sempre deixar em array o $texto e fazer um if contando o número total de indices?
Quais as sugestões posso ter baseado nessa necessidade?Entendi.
Vai ser em webservice apenas com retornos em JSON.
Tanto que estes dados eu vou passar num objeto JSON via cURL.
Também pensei fazer deixando o $texto sempre em array...
Pensei desta forma também porque como trata-se de um webservice, o usuario pode fazer "meleca" e de alguma forma personalizar 4 textos para 5 destinatarios.
<?php
$numero = array('1111111111','222222222','3333333333','44444444444','55555555');
$texto = array('ola esse eh meu texto 1','texto 2','texto 3', 'texto 4');
foreach($numero as $key => $value){
$msg = count($texto) > 1 && count($texto) === count($numero) ? $texto[$key] : $texto[0];
echo "<br> {$value} - {$msg} <br>";
}
?>
O que acha desta forma?
Desta forma num grande volume poderei ter maior tempo de processamento ou com apenas a verificação do is_array fica mais rapido?Fala @Guilherme Luiz,
Em minha opinião, prefira utilizar o is_array(), já que é uma função específica para tratativa da existência dos índices. Acredito que é melhor do que utilizar o COUNT, consome menos recurso. Penso eu.
Apenas para encerrar...
Optei por deixar por padrão a origem vinda de array.
Fiz alguns testes com microtime e a diferença foi quase zero de uma forma para outra.
Além disso pensei no lado usuario que poderia ficar em duvida se usaria string ou array.
Enfim...
Obrigado pela sugestões e até o proximo episodio rs
>
39 minutos atrás, Guilherme Luiz disse:
Agora o que seria melhor?
O melhor seria o resultado já vir normalizado/padronizado. Entretanto, se for um WebService, por exemplo, pode sofrer um problema da interpretação do XML por parte da linguagem de programação. Isso é bem comum ocorrer e tranformar a definição de uma lista em um item único (como no seu caso) .
No mais, eu apenas utilizaria o operador ternário: