Ir ao conteúdo
  • Cadastre-se

Posts recomendados

Postado

Pessoal, sou iniciando em PHP e estou precisando de ajuda com o array_push().

 

Com ele, eu consegui adicionar mais uma linha ao meu array, mas não estou sabendo como adicionar uma nova coluna, exemplo:

 

$matriz = array(array(0, 1, 1, 1), array(1, 0, 1, 0), array(1, 1, 0, 1), array(1, 0, 1, 0));

 

0 1 1 1 

1 0 1 0

1 1 0 1

1 0 1 0

 

ai faço um array_push($matriz, array(0, 0, 1, 1, 0)), fica assim:

 

0 1 1 1 

1 0 1 0

1 1 0 1

1 0 1 0

0 0 1 1 0

 

E eu gostaria que ficasse assim:

 

0 1 1 1 0

1 0 1 0 0

1 1 0 1 1

1 0 1 0 1

0 0 1 1 0

 

 

O que eu fiz até agora:

 

<?php 
$matriz = array(array(0, 1, 1, 1), 
                array(1, 0, 1, 0), 
                array(1, 1, 0, 1), 
                array(1, 0, 1, 0)); 
function adiciona_linha_coluna($matriz, &$nrow){ 
  $nrow = 0; array_push($matriz, array(0, 0, 1, 1, 0)); 
  print_r($matriz); 
} 
adiciona_linha_coluna($matriz, $nrow); 
?>

 

 

Poderiam me ajudar?

 

Postado

Olá!

array_push, como o sr. pode ver em https://www.php.net/array-push

Adiciona elementos apenas no final de um array já existente

Para adicionar elementos no final de cada linha, o sr. vai precisar percorrer cada linha existente do array.
image.png.1b51f84284ea17c9b9e9e65f8c44fd3c.png

 

Segue sugestão:

<?php
  $matriz = [
    [0, 1, 1, 1],
    [1, 0, 1, 0],
    [1, 1, 0, 1],
    [1, 0, 1, 0],
  ];

  // linha/coluna a ser adicionada
  $rowCol = [0, 0, 1, 1, 0];


  /**
   * Função para adicionar linha e coluna em um array
   * @param $matriz
   * @param $rowCol
   */
  function adiciona_linha_coluna(&$matriz, $rowCol)
  {

    // ADICIONAR COMO COLUNA
    // para cada linha do array
    foreach ($matriz as $index => $row) {
      // adiciona um elemento de $rowCol
      $matriz[$index][] = $rowCol[$index];
    }

    // ADICIONAR COMO LINHA
    array_push($matriz, $rowCol);
  }


  /**
   * Função para mostrar matriz
   * @param $matriz
   */
  function mostrar_matriz($matriz)
  {

    // inicia uma tabela
    $table = '<table cellpadding="4">';

    foreach ($matriz as $row) {
      // adiciona linhas à tabela
      $table .= '<tr><td>' . implode('</td><td>', $row) . '</td></tr>';
    }

    // mostra a tabela na tela
    echo $table . '</table>';
  }

  // mostra matriz original
  echo '<h2>Matriz Original</h2>';
  mostrar_matriz($matriz);

  // executa função para adicionar nova linha/coluna
  adiciona_linha_coluna($matriz, $rowCol);

  // mostra matriz com linha/coluna adicionada
  echo '<h2>Matriz com Linha/Coluna adicionada</h2>';
  mostrar_matriz($matriz);

Resultado obtido:

image.png.341eabe2df813df5d85aadca28ea1ebd.png

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...