
13/12/2005, 07:37
|
| | Fecha de Ingreso: octubre-2004 Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 20 años, 4 meses Puntos: 1 | |
Código:
//---------------------------------------------------------------------------------------------//
// Ordena un array respecto la posición que ocupa un valor de una clave en otro array. //
// Los dos arrays deben tener la misma clave y, además, sus valores no pueden estar repetidos. //
//---------------------------------------------------------------------------------------------//
// - $desordenado: array a ordenar. //
// - $ordenado : array a partir del cual ordenaremos el desordenado. //
// - $clave : clave del array ordenado a partir de la cual ordenar el desordenado. //
//---------------------------------------------------------------------------------------------//
function ordenar($desordenado,$ordenado,$clave){
// creamos un array en donde formaremos el resultado:
$reordenado = Array();
// recorremos el array ordenado:
foreach ($ordenado as $k => $v){
// tomamos el valor que hay en la clave especificada:
$valor = $v[$clave];
// buscamos este valor en el array desordenado:
$pos = 0;
$encontrado = false;
while (($pos < sizeof($desordenado)) && (!$encontrado)){
$encontrado = ($desordenado[$pos][$clave] == $valor);
if (!$encontrado) $pos++;
};
// suponemos que siempre encontraremos una coincidencia:
array_push($reordenado,$desordenado[$pos]);
};
// liberamos recursos:
unset($desordenado,$ordenado,$clave,$k,$v,$valor,$pos,$encontrado);
// devolvemos el array reordenado:
return $reordenado;
};
|