ccc

Mostrando entradas con la etiqueta Arrays. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arrays. Mostrar todas las entradas

Hallar la mediana de un arrray de números

function median($numbers) {
    sort($numbers);
    $totalNumbers = count($numbers);
    $mid = floor($totalNumbers / 2);

    return ($totalNumbers % 2) === 0 ? ($numbers[$mid - 1] + $numbers[$mid]) / 2 : $numbers[$mid];
}

echo median([1, 3, 3, 6, 7, 8, 9]); // 6
echo "<br>";
echo median([1, 3, 6, 7, 3, 8, 9]); // 6 (da igual el orden)
echo "<br>";
echo median([1, 2, 3, 6, 7, 9]); // 4.5

Función para eliminar elementos de un array

function pull(&$items, ...$params) {
    $items = array_values(array_diff($items, $params));
    return $items;
}

$arr = ['uno','dos','tres','cuatro','cinco'];
pull($arr, 'dos','tres','cinco');
print_r($arr); // uno, cuatro

Convertir un array a objeto

<?php
$arr = array();
$arr = ["uno", "dos", "tres", "cuatro"];
$objAux = (object)$arr;
print_r($objAux);
?>

Arrays; Comparar dos arrays entre sí (diferencias entre ellos)

<!DOCTYPE html>
<html>
<body>
<?php
$arr1 = array(
"1"=>"2",
"2"=>"4",
"3"=>"6",
"4"=>"8",
"5" => "10",
"6" => "12",
"7" => "14",
"8" => "16",
"9" => "18"
);

$arr2 = array(
"1"=>"3",
"2"=>"6",
"3"=>"9",
"4"=>"12",
"5" => "15",
"6" => "18"
);

$result = array_merge(array_diff($arr1, $arr2), array_diff($arr2, $arr1));
// Muestra tanto los que no están en uno como los que no están en el otro
print_r($result); // Da el 2, 4, 8, 10, 14, 16, 3, 9, 15

// Si quisieramos mostrar solo los q faltan en el $arr2 sería:
$result = array_diff($arr1, $arr2);
print_r($result); // Da 2, 4, 8, 10, 14, 16
?>
</body>
</html>

// Si se quiere además comparar arrays asociativos por la clave se hace con array_diff_assoc
$arr1    = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$arr2    = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($arr1, $arr2);
print_r($result);
// Da [b] => brown [c] => blue [0] => red
// el red lo saca pq en el $arr1 es [0] => "red" mientras que en $arr2 es [1] => "red"

// Sacar aquellos que tenga elementos en común
$arr1 = array("a" => "green", "red", "blue");
$arr2 = array("b" => "green", "yellow", "red");
$result = array_intersect($arr1, $arr2);
print_r($result); // Da [a] => green [0] => red
echo "<hr>";

$arr1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$arr2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result = array_intersect_assoc($arr1, $arr2);
print_r($result); // Da [a] => green

Obtener un array a partir de una columna específica de una matriz bidimensional

  function get_array_de_matriz($array, $clave){
        $arrayResult = array();
        foreach ($array as $key1 => $fila) {
            foreach ($fila as $key2 => $valor) {
                if($key2 == $clave){
                    $arrayResult[] = $valor;
                }
            }
        }
        return $arrayResult;
    } 


$query = "select codigo from mitabla";
$arr_codigos = $conn->load($query);
$arr_simple = get_array_de_matriz($arr_codigos, "codigo");

Arrays: Serializar arrays (pasarlos a texto, y viceversa)

$cadena = serialize($arrLinks);
echo "array serializado:".$cadena."<hr>";
$arrAux = unserialize($cadena);
echo "array desserializado:<br>";
print_r($arrAux);

Arrays: Cómo eliminar un elemento concreto del array

<?php
unset($gran_array[5]); // Esto elimina el elemento del array
unset($matriz);    // Esto elimina el array del todo

// Para eliminar uno por uno todos los elementos del array

foreach ($gran_array as $i=>$valor) {
  unset($gran_array[$i]);
}

// Ojo: a pesar de eliminar los valores el indice sigue apuntando al siguiente
// por tanto, al añadir uno nuevo se añade a la posición 5
// para estos casos lo mejor reindexar con array_values y así empieza desde cero.
$gran_array = array_values($gran_array);
?>

Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Arrays: Cómo añadir un nuevo elemento a una matriz

<?php
$matriz = array(5=>1, 12=>2);
$matriz[] = 56; // se agrega al siguiente libre que encuentre, es decir, $matriz[13]=56;
?>

Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Arrays: Cómo crear una matriz

<?php
// Una matriz es un array de otro array

$matriz = array("unamatriz" => array(6 => 5, 13 => 9, "a" => 42));
echo $matriz["unamatriz"][6];    // 5
echo $matriz["unamatriz"][13];   // 9
echo $matriz["unamatriz"]["a"];  // 42

// Si no especifica una clave para un valor dado, entonces es usado el máximo de los
// índices enteros, y la nueva clave será ese valor máximo + 1
array(5=>43,32,56,"b"=>12); 

// en realidad la matriz internamente quedaría array(5=>43, 6=>32, 7=>56, "b"=>12);

// Otro ejemplo de matriz

$gran_array = array(
   "directores" => array(1=>"Victor Fleming",2=>"John Ford",3=>"William Wyler"),
   "actores" =>array("Robert Donat","James Stewart","Gary Cooper","James Cagney","Paul Lukas"),
   "actrices" => array("Vivien Leigh",5=>"Ginger Rogers","Joan Fontaine"));
echo $gran_array["directores"][2]."<br>"; // John Ford
echo $gran_array["actores"][3]."<br>"; // James Cagney
echo $gran_array["actrices"][6]."<br>"; // Joan Fontaine
?>



Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Arrays: Cómo cambiar aleatoriamente todo el contenido de un array

<?php
$gran_array = range(1,20);
shuffle($gran_array);
for ($i=0; $i<sizeof($gran_array); $i++) {
 echo "La posición ".$i." ahora contiene ".$gran_array[$i]."<br>";
}
?>
Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Arrays: Cómo ordenar un array

<?php
$alumnos = array("uno", "dos", "tres", "cuatro", "cinco");
sort($alumnos);
foreach ($alumnos as $key => $val) {
  echo "alumnos[".$key."]=".$val."<br>";  // los muestra en orden alfabético
}

RSORT  // lo ordenaría alfabéticamente en orden inverso
rsort($alumnos);

KSORT: // lo ordena por el índice
$actores = array("1940"=>"James Stewart", "1937"=>"Spencer Tracy", "1951"=>"Humphrey Bogart","1945"=>"Ray Milland");
ksort($actores);
foreach ($actores as $key=>$val) {
  echo $key." = ".$val."<br>";  // muestra 1937 ..., 1940 ..., 1945..., 1951...
}

KRSORT: // lo ordena por el índice pero en orden inverso
krsort($actores);

ASORT: // ordena arrays con índice pero lo ordena por los valores
asort($actores);

ARSORT: // Lo mismo que ASORT pero en orden inverso
arsort($actores);

NATSORT(): // igual q el sort normal pero en el orden numérico: 1, 2, 11, 12 (sort lo ordena alfabéticamente  1, 11, 12, 2)
?>

Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Array: Cómo preguntar si un elemento está dentro de un array

<?php
if (in_array($var1, $gran_array)) { 

  echo "El elemento ".$var1." está dentro del array"; 
} 

// Otra forma más sencilla (tanto para Arrays normales como asociativos)


$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;

Otro ejemplo:
$arr = array("1940" => 'James Stewart', "1941" => 'Gary Cooper', "1942" => 'James Cagney', "1943" => 'Paul Lukas');
echo "<br>KEY:".array_search('James Cagney', $arr); // da 1942
echo "<br>KEY:".array_search('pepe', $arr); // da vacío

Arrays: Volcar en orden inverso todo el contenido de un array a otro

<?php
$gran_array2 = array_reverse($gran_array);
?>

Arrays: obtener la clave de la posición actual del array

<?php
echo key($gran_array);
?>

Arrays: Colocar el puntero en la siguiente posición del array

<?php
echo next($gran_array);
?>

Arrays: Colocar el puntero en la última posición del array

<?php
$gran_array = array("lunes", "martes", "miércoles", "jueves", "viernes");
end($gran_array);

echo current($gran_array); // mostraría viernes

?>

Arrays: Colocar el puntero en la primera posición del array para empezar a recorrerlo

<?php
$gran_array = array("lunes", "martes", "miércoles", "jueves", "viernes");
reset($gran_array);

echo current($gran_array); // mostraría lunes

?>
Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Arrays: Rellenar un array con los valores de un intervalo

<?php
$gran_array = range(2,5); // mete el 2, 3, 4 y 5
?>