PHP (24)


PHP: Asignación por referéncia =&

Un operador que no conocía, quizá por que no suele ser necesario: =&

Este operador asignará a una variable el valor referenciado de otra, es decir:

$a =  2013; // Defino $a
$b =& $a; // $b es lo mismo que $a
$c =  $a; // $c es una copia de $a
$a =  2014; // Redefino $a

echo $a; // 2014
echo $b; // 2014
echo $c; // 2013

Estos pequeños cambios pueden resultar una optimización seria del script y es importante conocerlos. Por ejemplo, y aunque no tenga que ver:

$a = 'a';
$a .= 'b';

// Es una mejora importante en rendimiento frente a

$a = 'a';
$a = $a.'b';



PHP: Convertir objeto a array

function objectToArray($d) {
	if(is_object($d)){
		$d = get_object_vars($d);
	}
	if(is_array($d)){
		return array_map(__FUNCTION__, $d);
	}else{
		return $d;
	}
}



PHP: Ordenar array por el valor de un campo

Recomiendo investigar: usort en php.net, bubble sort, ordenamiento por burbuja en wikipedia y la fuente.

function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) {
    $position = array();
    $newRow = array();
    foreach ($toOrderArray as $key => $row) {
            $position[$key]  = $row[$field];
            $newRow[$key] = $row;
    }
    if ($inverse) {
        arsort($position);
    }
    else {
        asort($position);
    }
    $returnArray = array();
    foreach ($position as $key => $pos) {     
        $returnArray[] = $newRow[$key];
    }
    return $returnArray;
}



Comprobar si un directorio está vacío con PHP

$directorio = '/tu/ruta/';
$is_empty = (bool) (count(scandir($directorio)) == 2);

$is_empty será true o false según si está vacío o no.