Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Regis

Atribuindo Valores para elementos de matrizes em PHP

Recommended Posts

Olá amigos,

 

Estou tentando desenvolver um programinha que faça contas (operações simples) com valores atribuidos a elementos de uma matriz.

 

Segue meu código desenvolvido até agora.

 

$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];

$matriz = array();


for($i =1; $i <= $valor1; $i++){
for ($j=1; $j<= $valor2; $j++){
$numero ==0;
array_push ($matriz, $numero);

echo "<br>";
echo "Potencial[".$i."][".$j."] =" .$matriz;
echo "<br>";

}
}
echo "<br><br>";
echo ("<br> Numero total de potenciais = \n\n" .count ($matriz));

echo "<br><br>";
print("<a href=\"potenciais.php\">link</a>");
?>
Bom ele inicialmente recebe valores do numero de linha da matriz e do numero de coluna, após isso estou tentando jogar um valor igual a zero para todos elementos da matriz e imprimir cada elemento com esse valor zero, isso é inicialmente pois futuramente quero fazer continhas com cada elemento dessa matriz....

 

Esse código está imprimindo assim

 

Potencial[1][1] =Array

Potencial[1][2] =Array

Potencial[2][1] =Array

Potencial[2][2] =Array
Não está atribuindo o valor 0 para cada elemento no array da matriz, no caso do exemplo pedi ao programa uma matriz 2X2, talvez esteja sendo bobo em fazer em php, mas gosto de php e queria publica-lo na internet,

 

Alguem pode me ajudar a analisar onde estou errando na hora de atribuir os valores aos elementos da matriz.

 

Ps: e Se por ventura alguem souber como faço para imprimir em formato matricial msm, linhas e colunas pode dar um help?

 

Obrigdo desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$matriz é um array. você está imprimindo o array em si. Pelo que entendi, você quer exibir os elementos, então use $matriz[$i][$j]

 

Para atribuir, também pode usar indexação:

 

 

$matriz[$i][$j] = 'valor';

 

PS: há um erro aqui:

 

$numero ==0;

 

Se intenção for atribuir 0, use apenas um sinal de igual

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara,

 

Mesmo utilizando

 

for($i =1; $i <= $valor1; $i++){
for ($j=1; $j<= $valor2; $j++){

$matriz[$i][$j] = 0;

pegando isso e tntando salvar dentro do array, me parece que ele nao grava as três variaveis, tipo o $i oo $j e o valor da $matriz, muito estranho já tentei de tudo para atribuir esse zero a todos valores dos elementos da matriz mas parece que sei lá nao vai.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve estar fazendo algo errado.

 

Teste este código:

 

<?php
$valor1 = 5;
$valor2 = 5;
for ($i =1; $i <= $valor1; $i++)
{
    for ($j=1; $j<= $valor2; $j++)
    {
        $matriz[$i][$j] = 0;
    }
}
print_r( $matriz );

 

Veja a saída dele. Será isto:

 

Array
(
    [1] => Array
        (
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
        )
    [2] => Array
        (
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
        )
    [3] => Array
        (
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
        )
    [4] => Array
        (
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
        )
    [5] => Array
        (
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
        )
)

 

PS: costuma-se iniciar os arrays no índice 0, não no índice 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!!!

 

Eu estava atribuindo um array a outro array sem necessidades....

 

for($i =1; $i <= $valor1; $i++){
for ($j=1; $j<= $valor2; $j++){
$a[$i][$j] = 0;
Moderador seu post foi muito útil...

Agora eu tenho a saida assim

 

Matriz[1][1] =0

Matriz[1][2] =0

Matriz[1][3] =0

Matria[2][1] =0

Matriz[2][2] =0
Eu imrpimo ele assim

 

echo "Matriz[".$i."][".$j."] =" .$a[$i][$j];
Alguem sabe como eu poderia organizar as colunas e linhas nessa ipressão, tipo assim

 

Matriz[1][1] =0   Matriz[1][2] =0  Matriz[1][3] =0
Matria[2][1] =0   Matriz[2][2] =0  Matriz[2][3] =0  
Esses indices [1][1] representam linhas e colunas respectivamentes, logo queria imprimir o resultado no formato da matriz....

 

 

GRato!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve fazer um loop para exibição parecido com o que você usa para atribuição. Dentro do segundo loop (o loop interno, que usa $j como contador), em vez de atribuir você faz o echo. No loop externo (que usa $i) em vez de não fazer nada, imprima um quebra de linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.