Ejemplos arrays

<?php

$a=[1,2,3,4];
$suma=0;
while(!empty($a)){
    $suma+=array_pop($a);
}
echo $suma;
print_r($a);
echo "<hr>";
echo contarPalabras("Hola que tal, yo estoy muy bien");
echo "<hr>";
echo palabraMasLarga("en un lugar de la mancha");
function contarPalabras($cadena){
    return count(explode(" ",$cadena));
}
function palabraMasLarga($cadena){
    $palabras= explode(" ", $cadena);
    $larga="";
    foreach($palabras as $palabra){
        if(strlen($palabra)>strlen($larga)){
            $larga=$palabra;
        }
    }
    return $larga;
}

Funciones array (II)

Pasar de cadena a array y viceversa:

explode()

implode()

str_split()

Ejemplos:

 function muestraTabla($tabla) {
 echo "<pre>";
 print_r($tabla);
 echo "</pre>";
 }

 $cadena = "hola que tal estamos";
 $tabla = explode(' ', $cadena);
 muestraTabla($tabla);
 $lista = "jamon,pollo,bistec,fuet";
 $carne = explode(",", $lista);
 muestraTabla($carne);
 $letras = str_split($lista);
 muestraTabla($letras);
 
 echo implode('-',$tabla)."<br/>";
 echo implode('***-***',$carne)."<br/>";
 echo implode('.',$letras)."<br/>";

Funciones array (I)

Número de elementos:

count()

Poner y quitar elementos:

Del final:
Quitar:
array_pop()
Poner:
array_push()

Del principio:
Quitar:
array_shift()
Poner:
array_unshift()

Ejemplos:

function muestraTabla($tabla) {
 echo "<pre>";
 print_r($tabla);
 echo "</pre>";
 }

 $tabla = array(1, 2, 3, 4, 5);
 $tabla = array("a" => 1,
 "b" => 2,
 "c" => 3,
 "d" => 4,
 "e" => 5,
 );
 muestraTabla($tabla);
 array_pop($tabla);
 muestraTabla($tabla);
 array_push($tabla, 99);
 muestraTabla($tabla);
 array_shift($tabla);
 muestraTabla($tabla);
 array_unshift($tabla, 200);
 muestraTabla($tabla);

Soluciones ejercicios

<?php

$a = [[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]];
echo sumaDiagonal($a);

//Ejercicio 1
function sumaArray($array) {
    $suma = 0;
    foreach ($array as $fila) {
        foreach ($fila as $valor) {
            $suma += $valor;
        }
    }
    return $suma;
}

//Ejercicio 2
function sumaColumna($array, $columna) {
    $suma = 0;
    for ($i = 0; $i < count($array); $i++) {
        $suma += $array[$i][$columna];
    }
    return $suma;
}

function sumaFila($array, $fila) {
    $suma = 0;
    for ($i = 0; $i < count($array[$fila]); $i++) {
        $suma += $array[$fila][$i];
    }
    return $suma;
}

function sumaDiagonal($array) {
    $suma = 0;
    for ($i = 0; $i < count($array); $i++) {
        $suma += $array[$i][$i];
    }
    return $suma;
}