Archive for January, 2008

Função PHP para remover “keys” de um Array

Saturday, January 26th, 2008

Acabei de criar um função em PHP para remover “keys” de um Array.

Considere o array abaixo:

$array = array (

'nome' => 'Leandro',

'sobrenome' => 'Vieira Pinho',

'email' => 'spam@efoda.com'

);

E considere também que você deseja excluir a key “email”, por exemplo. Portanto, o procedimento seria o seguinte:

unset( $array['email'] );

Logo, a estrutura do Array se modificaria com a ação executada. Resultando em:

$array = array (

'nome' => 'Leandro',

'sobrenome' => 'Vieira Pinho'

);

Quando houver necessidade de remover várias “keys” de um Array, utilizaremos várias vezes a função unset como exemplificado acima. Para simplificar meu trabalho, criei uma função intitulada como remove_key_from_array. Nela utilizo a função unset quantas vezes for necessário para remover as “keys” desejadas do um array, de acordo com os parâmetros passado à função.

Exemplo de uso da função considerando o array demonstrado acima.

print_r( remove_key_from_array( $array, array(‘sobrenome’,'email’) ) );

O resultado seria:

Array ( [nome] => Leandro )

Abaixo o código da função.

/**
* This function remove specified key from a given array
*
* @version 0.1
* @author Leandro Vieira Pinho
* @date Saturday, January 26, 2008
* @param array $array Array that contains the keys to be removed
* @param mixed $keys String with the key name; or, an Array with the keys names
* @return array Return the given array without the specified key(s)
*/
function remove_key_from_array( $array, $keys )
{
if ( is_array( $keys ) )
foreach( $keys as $key )
unset( $array[$key] );
else
unset( $array[$keys] );
return $array;
}

[UPDATE]Nova versão. Obrigado Fernando pela sugestão. [/UPDATE]

/**
 * This function remove specified key from a given Array and reindex it, if wanted.
 *
 * @version 0.2
 * @author Leandro Vieira Pinho
 * @date Monday, January 28, 2008
 * @param array $array Given Array that contains the keys to be removed
 * @param array $keys Array with the keys names
 * @param boolean $reindex Use "true" if you want to reindex the given array or convert associative array in indexed; "false" is default.
 * @return array Return the given array without the specified key(s)
 */
function remove_key_from_array( $array, $keys, $reindex = false )
{
	$keys = (array) $keys;
	foreach( $keys as $key )
		unset( $array[$key] );
	return ( $reindex ) ? $array = array_values( $array ) : $array;
}

Se lhe for útil, faço bom proveito.

Função JavaScript para exibir uma string em singular ou plural

Monday, January 7th, 2008

Chegou a vez do JavaScript, após criar um Plugin Smarty para exibir uma string em singular ou plural e uma função PHP com o mesmo propósito, demonstro agora a mesma função em JavaScript.

Segue o código da função:

/**
 * Shows a singular or plural message based in a informed number
 * How to use: alert( singular_plural( '%d child', '%d children', 2 ) );
 *
 * @version 0.1
 * @date Monday, January 7, 2008
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 */
function singular_plural( strMsgSingular, strMsgPlural, intTotal ) {
	if ( intTotal > 1 )
		return strMsgPlural.replace( '%d', intTotal );
		return strMsgSingular.replace( '%d', intTotal );
}

Exemplos de uso:

alert( singular_plural( '%d child', '%d children', 2 ) );

alert( singular_plural( '%d child', '%d children', 1 ) );

Em ambos exemplos, teremos os seguinte resultados: 2 children e 1 child.

Função PHP para exibir uma string em singular ou plural

Monday, January 7th, 2008

Num post anterior, falei sobre o Plugin Smarty para exibir uma string em singular ou plural que eu acabara de criar. Como alguns não utilizam o Smarty, adaptei o plugin de forma que ele possa ser utilizado como uma função PHP. Observe a forma de uso:

echo singular_plural(‘%d Comentário’, ‘%d Comentários’, $totalComentarios);

No exemplo acima, será exibido “x comentário” se a variável, $totalComentarios, tiver um valor igual ou menor que 1. Caso contrário, ou seja, se variável, $totalComentarios, tiver um valor maior que 1 será exibido “x comentários”.

Abaixo segue o código da função:

/**

 * Shows a singular or plural message based in a informed number

 * How to use: singular_plural( '%d child', '%d children', 2 );

 *

 * @version 0.1

 * @date Monday, January 7, 2008

 * @author Leandro Vieira Pinho - http://leandrovieira.com

 */

function singular_plural( $strMsgSingular, $strMsgPlural, $intTotal )

{

 if ( $intTotal > 1 )

 	return sprintf( $strMsgPlural, $intTotal );

 	return sprintf( $strMsgSingular, $intTotal );

}

Até o próximo.

Plugin Smarty para exibir uma string em singular ou plural

Monday, January 7th, 2008

Acabei de criar um plugin para o Smarty com o intuito de exibir o singular ou plural de uma frase, por exemplo, basedo num número informado. A utilização é simples e pode ser utilizado em diversas linguagens.

No seu arquivo de template, utilize o plugin com a seguinte sintaxe:

{singular_plural singular=”%d child” plural=”%d children” number=2}

No exemplo acima, o resultado será: 2 children. Outros exemplos:

{singular_plural singular=”%d casa” plural=”%d casas” number=1}

{singular_plural singular=”%d computador” plural=”%d computadores” number=5}

Em ambos exemplos, teremos os seguintes resultados: 1 casa; 5 computadores.

Baixe o plugin e coloque-o na pasta onde os plugin do Smarty são armazenados. Provavelmente este será o caminho da pasta: smarty/libs/plugins/

Toda sugestão será bem-vinda. Um abraço.