Array

Array en PHP es un tipo de variable el cual utilizamos para guardar datos. Array consiste en una colleccion o lista que contiene cero o mas tipos de datos, estos array utilizan un indice como punto de inicio cero 0 y el cual ese indice tambien se utilizando para acceder al valor dentro de elemento del array.

Los array son utiles para guardar multiples valores en una simple variable, el cual pueden ser organizado por medio de codigo para que pueda ser más legible y mantenible los datos dentro del array. Un array puede contener cualquier tipo de dato incluyendo numeros, cadena de caracteres y/o objetos.

Ejemplo de como es util el uso de array:

<?php

// Assign the five oceans to five variables
$ocean1 = "Pacific";
$ocean2 = "Atlantic";
$ocean3 = "Indian";
$ocean4 = "Arctic";
$ocean5 = "Antarctic";

// Using arrays, assign the five oceans
$oceans = [
  "Pacific",
  "Atlantic",
  "Indian",
  "Arctic",
  "Antarctic",
];

Como podemos ver en el ejemplo, en vez de crear cinco 5 variables separada, podemos usar una sola variable el cual contiene los cinco 5 element, utilizando corchete [...] simple que crea el array.

Creacion de array

Existen dos maneras de crear array.

  • Array literal, utilizando corchete simple [...]
<?php

$oceans = [
  "Pacific",
  "Atlantic",
  "Indian",
  "Arctic",
  "Antarctic",
];

foreach($oceans as $ocean) {
  echo "$ocean \n";
}
//-> Pacific Atlantic Indian Arctic Antarctic
  • Por medio de la funcion array()
<?php

$oceans = array(
  "Pacific",
  "Atlantic",
  "Indian",
  "Arctic",
  "Antarctic",
);

foreach($oceans as $ocean) {
  echo "$ocean \n";
}
//-> Pacific Atlantic Indian Arctic Antarctic

Indice array

Los array no contienen pares de nombre/valor "key/value" como los objeto, en vez de nombre/valor "key/value", los array contienen indice con un valor entero el cual comienza en 0.

<?php

$seaCreatures = [
  "octopus",
  "squid",
  "shark",
  "seahorse",
  "starfish"
];

En la siguen tabla, veremos un ejemplo de la relacion del indice con el array

octopus squid shark seahorse starfish
0 1 2 3 4

Acceso a element de array

Para acceder a un elemento dentro del array, utilizamos la variable del array junto el indice del elemento en conchetes.

<?php

$seaCreatures = [
  "octopus",
  "squid",
  "shark",
  "seahorse",
  "starfish"
];

echo $seaCreatures[2]; //-> shark

Tambien podemos acceder a array anidados, utilizando la variables y indice pariente del elemento que queremos acceder.

<?php

$seaCreatures = [
  [
    "octopus",
    "squid"
  ],
  [
    "shark",
    "seahorse",
    "starfish"
  ]
];

echo $seaCreatures[1][0]; //-> shark

Añadir elemento a array

Si nuestra variable contiene cinco 5 elementos, sus indices consiste de 0 a 4, si queremos añadir otro elemento podemos asignar el valor al proximo indice del array.

<?php

$seaCreatures = [
  "octopus",
  "squid",
  "shark",
  "seahorse",
  "starfish"
];

$seaCreatures[] = "whale";

foreach($seaCreatures as $creature) {
 echo "$creature n";
}
//-> octopus squid shark seahorse starfish whale

No es necesario asignar su valor indice, por defecto, el procesador de PHP automaticamente añade el valor a su proximo espacio indice disponible.

Otra manera de añadir elemento a un array es utilizando la funcion array_push() el cual es parte de PHP.

<?php

$push_to_array = function($array, $value) {
  array_push($array, $value);
  return $array;
};

$seaCreatures = [
  "octopus",
  "squid",
  "shark",
  "seahorse",
  "starfish"
];

$seaCreatures = $push_to_array($seaCreatures, "whale");

foreach($seaCreatures as $creature) {
  echo "$creature \n";
}
//-> octopus squid shark seahorse starfish whale

Remover elemento de array

Podemos utilizar la funcion unset para eleminar elementos de array usando el indice del array.

<?php

$delete_from_array = function($array, $value) {
  unset($array[$value]);
  return $array;
};

$seaCreatures = [
  "octopus",
  "squid",
  "shark",
  "seahorse",
  "starfish"
];

$seaCreatures = $delete_from_array($seaCreatures, 2);

foreach($seaCreatures as $creature) {
  echo "$creature \n";
}
//-> octopus squid seahorse starfish

Modificar elementos en array

Para modificar un array simplemente podemos usar la funcionarray_push()incluyendo el indice del valor que deseamos modificar.

<?php

$update_from_array = function($array, $value, $index = -1) {
  if($index != -1) {
    $array[$index] = $value;
  }
  else {
    array_push($array, $value);
  }

  return $array;
};

$seaCreatures = [
  "octopus",
  "squid",
  "shark",
  "seahorse",
  "starfish"
];

$seaCreatures = $update_from_array($seaCreatures, "whale", 2);

foreach($seaCreatures as $creature) {
  echo "$creature \n";
}
//-> octopus squid whale seahorse starfish

Array multidimensional

Se le conoce como matriz de matrices. Le permite almacenar datos tabulares en una matriz. Se puede representar por filas de columna.

<?php

// Multi array
$customerRecord = array(
  array("Pete", "Smith", "123 Main Street", "Atlanta", "GA", 30001),
  array("Sally", "Parisi", "101 South Street", "Atlanta", "GA", 30001),
  array("Jake", "Boukari", "111 Peachtree Street", "Atlanta", "GA", 30011),
  array("Cap", "Hill", "1112 Ptree Dunwoody Rd", "Atlanta", "GA", 30018)
);

// Access to multi array
$customerLastName = $customerRecord[0][1];
echo $customerLastName;

Remover elemento de array multidimensional

<?php

$delete_from_arrayM = function(array $array, int $firstIndex, int $secondIndex) {
  unset($array[$firstIndex][$secondIndex]);
  return $array;
};

$customerRecord = array(
  array("Pete", "Smith", "123 Main Street", "Atlanta", "GA", 30001),
  array("Sally", "Parisi", "101 South Street", "Atlanta", "GA", 30001),
  array("Jake", "Boukari", "111 Peachtree Street", "Atlanta", "GA", 30011),
  array("Cap", "Hill", "1112 Ptree Dunwoody Rd", "Atlanta", "GA", 30018)
);

$customerRecord = $delete_from_arrayM($customerRecord, 0, 0);

foreach($customerRecord as $customer) {
  print_r($customer);
}

Añadir o modificar elemento de array multidimensional

<?php

$update_to_arrayM = function(array $array, $value, int $firstIndex = -1, int $secondIndex = -1) {
  if($firstIndex != -1 && $secondIndex != -1) {
    $array[$firstIndex][$secondIndex] = $value;
  }
  else if($firstIndex != -1) {
    $array[$firstIndex] = $value;
  }
  else {
    array_push($array, $value);
  }
  return $array;
};

$customerRecord = array(
  array("Pete", "Smith", "123 Main Street", "Atlanta", "GA", 30001),
  array("Sally", "Parisi", "101 South Street", "Atlanta", "GA", 30001),
  array("Jake", "Boukari", "111 Peachtree Street", "Atlanta", "GA", 30011),
  array("Cap", "Hill", "1112 Ptree Dunwoody Rd", "Atlanta", "GA", 30018)
);

$customerRecord = $update_to_arrayM($customerRecord, "Steve", 0, 0);
$firstName = $customerRecord[0][0];
echo $firstName; //-> "Steve"

Array asociativo

Los array asociativo son aquellos que nos permiten utilizar nombre como llaves indices del array al contrario de array regulares que utilizamos numero.

<?php

$customerRecord = array(
  array(
    'first_name' => 'Pete', 
    'last_name' => 'Smith', 
    'address' => '123 Main Street', 
    'city' => 'Atlanta', 
    'state' => 'GA', 
    'zip_code' => 30001
  ),
  array(
    'first_name' => 'Sally', 
    'last_name' => 'Parisi', 
    'address' => '101 South Street', 
    'city' => 'Atlanta', 
    'state' => 'GA', 
    'zip_code' => 30001
  )
);

$firstName = $customerRecord[0]['first_name'];
echo $firstName; //-> "Pete"

// Iteracion
foreach($customerRecord[0] as $key => $value) {
  print_r($key . '=>' . $value);
}

Metodos aplicables a arrays asociativo

Eliminar elemento de array
<?php
$customerRecord = array(
  array(
    'first_name' => 'Pete',
    'last_name' => 'Smith', 
    'address' => '123 Main Street', 
    'city' => 'Atlanta', 
    'state' => 'GA', 
    'zip_code' => 30001),
  array(
    'first_name' => 'Sally',
    'last_name' => 'Parisi', 
    'address' => '101 South Street', 
    'city' => 'Atlanta', 
    'state' => 'GA', 
    'zip_code' => 30001)
);

$deleteArrayElementValueByKey = function(array $array, int $arrayIndex, $valueKey) {
  unset($array[$arrayIndex][$valueKey]);
  return $array;
};

$customerRecord = $deleteArrayElementValueByKey($customerRecord, 1, 'last_name');
print_r($customerRecord[1]['last_name']); //-> Undefined
Modificar o insertar valores de array
<?php 

$customerRecord = array(
  'first_customer' => 
    array(
      'first_name' => 'Pete',
      'last_name' => 'Smith', 
      'address' => '123 Main Street', 
      'city' => 'Atlanta', 
      'state' => 'GA', 
      'zip_code' => 30001),
  'second_customer' => 
    array(
      'first_name' => 'Sally',
      'last_name' => 'Parisi', 
      'address' => '101 South Street', 
      'city' => 'Atlanta', 
      'state' => 'GA', 
      'zip_code' => 30001)
);

$tempArray = array(
  'first_name' => 'Jenny',
  'last_name' => 'Parisi', 
  'address' => '104 North Street', 
  'city' => 'Atlanta', 
  'state' => 'GA', 
  'zip_code' => 30004
);

$updateArrayElementValueByKey = function(array $array, String $arrayIndex, array $valueKey) {
  $array[$arrayIndex] = $valueKey;
  return $array;
};

$customerRecord = $updateArrayElementValueByKey($customerRecord, 'second_customer', $tempArray);
print_r($customerRecord);

results matching ""

    No results matching ""