Dica: como debugar alegre.

Mais uma dica para você, querido desenvolvedor. Normalmente quando está fazendo os debugs alegres e contentes utilizando o bom e velho var_dump vem aquele linguição de palavras q vc não consegue enxergar uma vírgula. Para resolver esse problema, utilize a tag pre.

Como usar:

<pre><?php var_dump($variavel); ?></pre>

{update!!!}
Se vc é preguiçoso (assim como eu) pode usar a função:
function debug($x){
echo ‘

'; var_dump($x); echo '

‘;
}

Array

Hoje eu vou falar de um assunto que me deixou realmente muito irritada no escritório pelo fato de existir o Google e PHP Manual para pesqueisar e as pessoas não vão atrás! Isso me deixa muito irritada (para não falar outra coisa).

Vamos começar a brincadeira. Para criar um novo array é muito simples. Dúvidas?

<?php
	$frutas = array array("a"=>"laranja", "b"=>"banana", "c"=>"maçã");
	$numeros = array(1, 2, 3, 4, 5, 6);
?>

Ok. Coloquei os valores em um array. Vou colocar um exemplo de matriz:

<?php
	$sacolao = array (
						"frutas" => array("a"=>"laranja", "b"=>"banana", "c"=>"maçã"),
						"verduras" => array("a"=>"abobrinhas", "b"=>"beteraba","c" => "cenoura"),
					);
	);
?>

Simples não?
E agora eu quero ver como ficou os array. Para isso você tem duas formas de imprimir:
print_r

<?php
	print_r($sacolao);
	#Resultado: Array ( [frutas] => Array ( [a] => laranja [b] => banana [c] => maçã ) [verduras] => Array ( [a] => abobrinhas [b] => beteraba [c] => cenoura ) )
?>

– Ou var_dump:

<?php
	var_dump($sacolao);
	/*	Resultado:
		array
			'frutas' => 
				array
					'a' => string 'laranja' (length=7)
					'b' => string 'banana' (length=6)
					'c' => string 'maçã' (length=4)
			'verduras' => 
				array
					'a' => string 'abobrinhas' (length=10)
					'b' => string 'beteraba' (length=8)
					'c' => string 'cenoura' (length=7)
	*/
?>

Ok. Já colocamos os dados em um array e já imprimimos. Mas não é só isso que o array pode fazer. Vou colocar algumas funções de ordenação. A fim de facilitar a busca, coloco uma tabela comparativa:

Funções Ordenação Descrição
sort Crescente Ordena o array sem manter os índices
rsort Decrescente Ordena o array sem manter os índices
asort Crescente Ordena o array mantendo a associação do índice e valor
arsort Decrescente Ordena o array mantendo a associação do índice e valor
ksort Crescente Ordena um array pelas chaves
krsort Decrescente Ordena um array pelas chaves

Para demonstrar cada função, vou utilizar o array abaixo:

<?php
	$num = array(15 => 1, 21 => 1, 1 => 15, 5 => 30, 2 => 4);
	var_dump($num);
	/*
		Resultado:
			array
				15 => int 1
				21 => int 1
				1 => int 15
				5 => int 30
				2 => int 4
	*/
?>

sort: Ordena um array em ordem crescente sem manter os índices.

<?php
	sort($num,SORT_NUMERIC);
	var_dump($num);
	/*
		Resultado
				array
					0 => int 1
					1 => int 1
					2 => int 4
					3 => int 15
					4 => int 30
	*/
?>

rsort: Ordena um array em ordem descrescente sem manter os índices.

<?php
	rsort($num,SORT_NUMERIC);
	var_dump($num);
	/*
		Resultado
				array
					0 => int 30
					1 => int 15
					2 => int 4
					3 => int 1
					4 => int 1
	*/
?>

asort:Ordena um array mantendo a associação entre índices e valores.

<?php
	asort($num,SORT_NUMERIC);
	var_dump($num);
	/*
		Resultado
				array
					15 => int 1
					21 => int 1
					2 => int 4
					1 => int 15
					5 => int 30
	*/
?>

arsort: Ordena um array em ordem descrescente mantendo a associação entre índices e valores.

<?php
	arsort($num,SORT_NUMERIC);
	var_dump($num);
	/*
		Resultado
				array
					5 => int 30
					1 => int 15
					2 => int 4
					21 => int 1
					15 => int 1
	*/
?>

ksort: Ordena um array pelas chaves

<?php
	ksort($num,SORT_NUMERIC);
	var_dump($num);
	/*
		Resultado:
			array
				1 => int 15
				2 => int 4
				5 => int 30
				15 => int 1
				21 => int 1
	*/
?>

krsort: Ordena um array pelas chaves em ordem descrescente (é o contrário do ksort).

<?php
	krsort($num,SORT_NUMERIC);
	var_dump($num);
	/*
		Resultado:
			array
				21 => int 1
				15 => int 1
				5 => int 30
				2 => int 4
				1 => int 15
	*/
?>

Outras funções de muita utilidade:
array_unique: Remove o valores duplicados de um array

<?php
	var_dump(array_unique($num));
	/*
		Resultado:
			array
				15 => int 1
				1 => int 15
				5 => int 30
				2 => int 4
	*/
?>

shuffle: Mistura os elementos de um array de forma aleatória sem manter os índices.

<?php
	shuffle($num);
	var_dump($num);
	/*
		Resultado
				array
					0 => int 4
					1 => int 30
					2 => int 1
					3 => int 1
					4 => int 15
	*/
?>

range: Cria um array contendo uma faixa de elementos.

<?php
	$num = range(5,50,5);
	var_dump($num);
	/*
		Resultado:
			array
				0 => int 5
				1 => int 10
				2 => int 15
				3 => int 20
				4 => int 25
				5 => int 30
				6 => int 35
				7 => int 40
				8 => int 45
				9 => int 50
	*/
?>

<a href="http://php.net/manual/en/function.in-array.php" target="blank">in array: </a>Procura o elemento no array.

<?php
	$os = array("Mac", "NT", "Irix", "Linux");
	//Resultado: Got Irix
	if (in_array("Irix", $os)) {
		echo "Got Irix";
	}
	//Resultado: vazio
	if (in_array("mac", $os)) {
		echo "Got mac";
	}
?>

count: Conta o número de elementos de uma variável, ou propriedades de um objeto.

<?php
	$os = array("Mac", "NT", "Irix", "Linux");
	echo count($os);
	//Resultado: 4
?>

array_count_values: Conta as frequências de cada valor de um array

<?php
	$array = array(1, "ola", 1, "mundo", "ola");
	$resultado = array_count_values($array);
	var_dump($resultado);
	/*
		Resultado: 
			array
				1 => int 2
				'ola' => int 2
				'mundo' => int 1
	*/
?>

array_multisort: Ordena múltiplos arrays ou arrays multidimensionais.

<?php
	$ar1 = array(10, 100, 100, 0);
	$ar2 = array(1, 3, 2, 4);
	array_multisort($ar1, $ar2);

	var_dump($ar1);
	var_dump($ar2);
	/*
		Resultado:
			array
				0 => int 0
				1 => int 10
				2 => int 100
				3 => int 100
			array
				0 => int 4
				1 => int 1
				2 => int 2
				3 => int 3
	*/
?>

Existem outras funções no PHP Manual.