PHP: Arrays
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 14, 11-04-2013
Arrays em PHP

Um array é uma estrutura de dados que permite agrupar itens que
partilham determinadas características -> é um agrupamento lógico de
dados relacionados

Cada item agrupado distingue-se através dum identificador especial, a
chave

Cada item possui dois componentes:

  • chave que o identifica (pode ser igual à posição ocupada no array)
  • valor armazenado



       array    Valor0    Valor1    Valor2    Valor3

                 [0]       [1]       [2]       [3]
Arrays: Declaração/criação e chaves

As chaves podem ser:

  • numéricas -> as chaves não têm relação com os valores armazenados,
    indicando apenas a sua posição no array
     • $clubes = array(0 => “Sporting", 1 => “Porto“);
       echo $clubes[0];
     • a posição inicial dos arrays de chave numérica em PHP é 0 (zero)


  • associativas -> as chaves estão relacionadas logicamente com os valores
    armazenados
     • $clubes = array(“SCP" => “Sporting", “SCB" =>
       “Braga“, “FCP” => “Porto”);
       echo $clubes[“SCP”];
Arrays multidimentionais

Arrays multidimensionais (Arrays de Arrays)
  • $tresgrandes = array(
    “SCP" => array (“Nome” => “Sporting“, “Estadio” => “Alvalade
    XXI”),
    “SCB" => array(“Nome“ => “Braga”, “Estadio” => “Municipal”),
    “FCP” => array(“Nome“ => “Porto”, “Estadio” => “Dragão”)
    );


                   [Nome]       Spor%ng          Braga      Porto
                  [Estadio]   Alvalade	
  XXI   Municipal   Dragão
                                 [SCP]           [SCB]      [FCP]




  • $tresgrandes[“SCP”][“Estadio”] -> “Alvalade XXI”
Arrays: Declaração por atribuição

Array com chave NUMÉRICA

  • atribuição directa de valores ao array com a indicação da respectiva chave
    • $clubes[0] = “Sporting";
      $clubes[1] = “Braga";
      $clubes[2] = “Porto";
  • se a chave for ascendente, pode ser omitida na criação!
    • $clubes[] = “Sporting";
      $clubes[] = “Braga";

Array com chave ASSOCIATIVA
  • uma chave associativa nunca pode ser omitida na criação!
    • $feriados[“Natal”] = “25 dezembro”;
      $feriados[“AnoNovo”] = “1 janeiro”;
Arrays: list()

Permite atribuir a variáveis, os valores armazenados num Array com chave
numérica
   • $info = array(‘café', ‘castanho', ‘cafeína');

                                                         $drink = $info[0];
   • // Listar todas as variáveis                        $color = $info[1];
     list($drink, $color, $power) = $info;               $power = $info[2];

     echo “O $drink é $color e a $power torna-o estimulante.";
   • // Listar apenas algumas
     list($drink, , $power) = $info;
     echo “O $drink tem $power.";
   • // Mostrar apenas a terceira
     list( , , $power) = $info;
     echo “Preciso $power!";

+info: http://pt2.php.net/manual/en/function.list.php)
Arrays: Inserção e escrita de valores

Povoar um array com uma gama de valores

  • $numeros = range(0,6);
    // idêntico a $numeros = array(0,1,2,3,4,5,6)
  • $npares = range(0,20,2); //inc pode ser uma variável
    // $npares = array(0,2,4,6,8,10,12,14,16,18,20);
  • $letras = range("A",“G");
    // $letras = array("A","B","C","D","E","F", "G");


Escrever o conteúdo de um array -> print_r()
  • print_r($letras);
  • print_r($npares);
Arrays: Testar tipo de variáveis

Para testar se uma variável é um Array -> is_array()

  • $cidades = array(“Lisboa“, “Aveiro”);
    $cidade = “Porto”;

    printf("$cidades é um array: %s",
    (is_array($cidades) ? “V" : "F"));

    printf("$cidade é um array: %s",
    (is_array($cidade) ? “V" : "F"));

    -> “$cidades é um array: V”
    -> “$cidade é um array: F”
Arrays: Métodos para adicionar valores

Ao início do Array -> array_unshift()

  • $states = array("Ohio","New York");
    array_unshift($states,"California","Texas");

    //$states -> array("California","Texas","Ohio","New York");

Ao final do Array -> array_push()
  • $states = array("Ohio","New York");
    array_push($states,"California","Texas");

    //$states -> array("Ohio","New York","California","Texas");
Arrays: Métodos para remover valores

Ao início do Array -> array_shift()

   • $states = array("Ohio","New York","California","Texas");
     $state = array_shift($states);

    // $states -> array("New York","California","Texas")
    // $state -> "Ohio"

Ao final do Array -> array_pop()
   • $states = array("Ohio","New York","California","Texas");
     $state = array_pop($states);

    // $states -> array("Ohio", "New York", "California“)
    // $state -> "Texas"
Arrays: Mais métodos

http://php.net/manual/en/ref.array.php
Arrays: Pesquisas

Pesquisar um valor no Array -> in_array()

  • retorna TRUE se encontrar o valor pesquisado e FALSE se não encontrar
  • $states = array("California", "Hawaii", "Ohio", "New
    York");

    if(in_array("Ohio", $states)) {
    " echo “Encontrei!";
    } else {
    " echo   “Não encontrei."
    }
Arrays: Pesquisas

Pesquisar uma chave em Arrays associativos -> array_key_exists()

  • $clubes[“SCP"] = “Sporting";
    $clubes[“SLB"] = “Benfica";
    $clubes[“FCP"] = “Porto";

    if (array_key_exists(“SCP", $clubes)) {
       printf(“Encontrei o %s", $clubes[“SCP"]);
    }
Arrays: Pesquisas

Pesquisar um valor em Arrays associativos -> array_search()

  • $clubes[“SCP"] = “Sporting";
    $clubes[“SLB"] = “Benfica";
    $clubes[“FCP"] = “Porto";

    $founded = array_search(“Porto", $clubes);
    if ($founded) {
       printf("%s foi encontrado.“, $clubes[$founded]);
    }

    -> “Porto foi encontrado.”
Arrays: Pesquisas

  • $clubes[“SCP"] = “Sporting";
    $clubes[“SCB"] = “Braga";
    $clubes[“FCP"] = “Porto";


Retornar todas as chaves num Array -> array_keys()
  • $keys = array_keys($clubes);
    print_r($keys);



Retornar todos os valores de um array -> array_values()
  • $keys = array_values($clubes);
    print_r($keys);
Arrays: Acesso por ponteiro

Retornar a chave de uma dada posição do Array -> key()

  • $clubes = array("SCP" => "Alvalade", "FCP" =>
    "Dragão");
    while ($chave = key($clubes)) {
       echo $chave . "<br />";
       next($clubes);
    }

Retornar o valor armazenado numa dada posição do Array -> current()
  • $clubes = array("SCP" => "Alvalade", "FCP" =>
    "Dragão");
    while($estadio = current($clubes)) {
       echo $estadio . "<br />";
       next($clubes);
    }
Arrays: movimentação de ponteiro

Mover o ponteiro

                    “maçã”   “laranja”   “banana”   “morango”




  • sendo $fruta um array
     • next($fruta) -> move ponteiro para a posição seguinte
     • prev($fruta) -> move ponteiro para a posição anterior

  • $fruta = array(“maçã", “laranja", "banana“, “morango”);
     • $frutas = next($fruta);                      // $fruta = “laranja"
     • $frutas = next($fruta);                      // $fruta = "banana“
     • $frutas = prev($fruta);                      // $fruta = “laranja"
Arrays: movimentação de ponteiro

Mover o ponteiro

                    “maçã”   “laranja”   “banana”   “morango”




  • reset($fruta) -> move o ponteiro para a posição inicial do array
  • current($fruta) -> valor na posição actual do ponteiro
  • end($fruta) -> move ponteiro para a posição final do array


     • $fruta = array(“maçã", “laranja", "banana“,
       “morango”);
     • $frutas = current($fruits);                              // “maçã"
     • $frutas = end($fruits);                                  // “morango“
     • $frutas = reset($fruits);                                // “maçã"

LabMM4 (T14 - 12/13) - Arrays

  • 1.
    PHP: Arrays Carlos Santos LabMM4 - NTC - DeCA - UA Aula 14, 11-04-2013
  • 2.
    Arrays em PHP Umarray é uma estrutura de dados que permite agrupar itens que partilham determinadas características -> é um agrupamento lógico de dados relacionados Cada item agrupado distingue-se através dum identificador especial, a chave Cada item possui dois componentes: • chave que o identifica (pode ser igual à posição ocupada no array) • valor armazenado array Valor0 Valor1 Valor2 Valor3 [0] [1] [2] [3]
  • 3.
    Arrays: Declaração/criação echaves As chaves podem ser: • numéricas -> as chaves não têm relação com os valores armazenados, indicando apenas a sua posição no array • $clubes = array(0 => “Sporting", 1 => “Porto“); echo $clubes[0]; • a posição inicial dos arrays de chave numérica em PHP é 0 (zero) • associativas -> as chaves estão relacionadas logicamente com os valores armazenados • $clubes = array(“SCP" => “Sporting", “SCB" => “Braga“, “FCP” => “Porto”); echo $clubes[“SCP”];
  • 4.
    Arrays multidimentionais Arrays multidimensionais(Arrays de Arrays) • $tresgrandes = array( “SCP" => array (“Nome” => “Sporting“, “Estadio” => “Alvalade XXI”), “SCB" => array(“Nome“ => “Braga”, “Estadio” => “Municipal”), “FCP” => array(“Nome“ => “Porto”, “Estadio” => “Dragão”) ); [Nome] Spor%ng Braga Porto [Estadio] Alvalade  XXI Municipal Dragão [SCP] [SCB] [FCP] • $tresgrandes[“SCP”][“Estadio”] -> “Alvalade XXI”
  • 5.
    Arrays: Declaração poratribuição Array com chave NUMÉRICA • atribuição directa de valores ao array com a indicação da respectiva chave • $clubes[0] = “Sporting"; $clubes[1] = “Braga"; $clubes[2] = “Porto"; • se a chave for ascendente, pode ser omitida na criação! • $clubes[] = “Sporting"; $clubes[] = “Braga"; Array com chave ASSOCIATIVA • uma chave associativa nunca pode ser omitida na criação! • $feriados[“Natal”] = “25 dezembro”; $feriados[“AnoNovo”] = “1 janeiro”;
  • 6.
    Arrays: list() Permite atribuira variáveis, os valores armazenados num Array com chave numérica • $info = array(‘café', ‘castanho', ‘cafeína'); $drink = $info[0]; • // Listar todas as variáveis $color = $info[1]; list($drink, $color, $power) = $info; $power = $info[2]; echo “O $drink é $color e a $power torna-o estimulante."; • // Listar apenas algumas list($drink, , $power) = $info; echo “O $drink tem $power."; • // Mostrar apenas a terceira list( , , $power) = $info; echo “Preciso $power!"; +info: http://pt2.php.net/manual/en/function.list.php)
  • 7.
    Arrays: Inserção eescrita de valores Povoar um array com uma gama de valores • $numeros = range(0,6); // idêntico a $numeros = array(0,1,2,3,4,5,6) • $npares = range(0,20,2); //inc pode ser uma variável // $npares = array(0,2,4,6,8,10,12,14,16,18,20); • $letras = range("A",“G"); // $letras = array("A","B","C","D","E","F", "G"); Escrever o conteúdo de um array -> print_r() • print_r($letras); • print_r($npares);
  • 8.
    Arrays: Testar tipode variáveis Para testar se uma variável é um Array -> is_array() • $cidades = array(“Lisboa“, “Aveiro”); $cidade = “Porto”; printf("$cidades é um array: %s", (is_array($cidades) ? “V" : "F")); printf("$cidade é um array: %s", (is_array($cidade) ? “V" : "F")); -> “$cidades é um array: V” -> “$cidade é um array: F”
  • 9.
    Arrays: Métodos paraadicionar valores Ao início do Array -> array_unshift() • $states = array("Ohio","New York"); array_unshift($states,"California","Texas"); //$states -> array("California","Texas","Ohio","New York"); Ao final do Array -> array_push() • $states = array("Ohio","New York"); array_push($states,"California","Texas"); //$states -> array("Ohio","New York","California","Texas");
  • 10.
    Arrays: Métodos pararemover valores Ao início do Array -> array_shift() • $states = array("Ohio","New York","California","Texas"); $state = array_shift($states); // $states -> array("New York","California","Texas") // $state -> "Ohio" Ao final do Array -> array_pop() • $states = array("Ohio","New York","California","Texas"); $state = array_pop($states); // $states -> array("Ohio", "New York", "California“) // $state -> "Texas"
  • 11.
  • 12.
    Arrays: Pesquisas Pesquisar umvalor no Array -> in_array() • retorna TRUE se encontrar o valor pesquisado e FALSE se não encontrar • $states = array("California", "Hawaii", "Ohio", "New York"); if(in_array("Ohio", $states)) { " echo “Encontrei!"; } else { " echo “Não encontrei." }
  • 13.
    Arrays: Pesquisas Pesquisar umachave em Arrays associativos -> array_key_exists() • $clubes[“SCP"] = “Sporting"; $clubes[“SLB"] = “Benfica"; $clubes[“FCP"] = “Porto"; if (array_key_exists(“SCP", $clubes)) { printf(“Encontrei o %s", $clubes[“SCP"]); }
  • 14.
    Arrays: Pesquisas Pesquisar umvalor em Arrays associativos -> array_search() • $clubes[“SCP"] = “Sporting"; $clubes[“SLB"] = “Benfica"; $clubes[“FCP"] = “Porto"; $founded = array_search(“Porto", $clubes); if ($founded) { printf("%s foi encontrado.“, $clubes[$founded]); } -> “Porto foi encontrado.”
  • 15.
    Arrays: Pesquisas • $clubes[“SCP"] = “Sporting"; $clubes[“SCB"] = “Braga"; $clubes[“FCP"] = “Porto"; Retornar todas as chaves num Array -> array_keys() • $keys = array_keys($clubes); print_r($keys); Retornar todos os valores de um array -> array_values() • $keys = array_values($clubes); print_r($keys);
  • 16.
    Arrays: Acesso porponteiro Retornar a chave de uma dada posição do Array -> key() • $clubes = array("SCP" => "Alvalade", "FCP" => "Dragão"); while ($chave = key($clubes)) { echo $chave . "<br />"; next($clubes); } Retornar o valor armazenado numa dada posição do Array -> current() • $clubes = array("SCP" => "Alvalade", "FCP" => "Dragão"); while($estadio = current($clubes)) { echo $estadio . "<br />"; next($clubes); }
  • 17.
    Arrays: movimentação deponteiro Mover o ponteiro “maçã” “laranja” “banana” “morango” • sendo $fruta um array • next($fruta) -> move ponteiro para a posição seguinte • prev($fruta) -> move ponteiro para a posição anterior • $fruta = array(“maçã", “laranja", "banana“, “morango”); • $frutas = next($fruta); // $fruta = “laranja" • $frutas = next($fruta); // $fruta = "banana“ • $frutas = prev($fruta); // $fruta = “laranja"
  • 18.
    Arrays: movimentação deponteiro Mover o ponteiro “maçã” “laranja” “banana” “morango” • reset($fruta) -> move o ponteiro para a posição inicial do array • current($fruta) -> valor na posição actual do ponteiro • end($fruta) -> move ponteiro para a posição final do array • $fruta = array(“maçã", “laranja", "banana“, “morango”); • $frutas = current($fruits); // “maçã" • $frutas = end($fruits); // “morango“ • $frutas = reset($fruits); // “maçã"