PHP - Rotar matriz array_unshift

 
Vista:

Rotar matriz array_unshift

Publicado por moonight (1 intervención) el 08/12/2019 17:56:56
Hola, estoy intentando rotar una matriz de 5x6 de manera que cada número avance una posición y el último sea el primero

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
//RELLENO LA MATRIZ CON NUMEROS ALEATORIOS
 
for($i=0;$i<6;$i++){
    for($j=0;$j<7;$j++){
        $aleatorio=mt_rand(10,99);
        $a[$i][$j]=$aleatorio;
    }
 
}
 
echo "<br>";   /LA MUESTRO EN UNA TABLA
 
echo "<table border=1 width=200px >";
 
    for($i=0;$i<count($a);$i++){
 
        echo "<tr>";
 
            for($j=0;$j<count($a[0]);$j++){
                echo "<td>".$a[$i][$j]."</td>";
            }
        echo "</tr>";
    }
echo "</table>";
 
echo "<br>";echo "<br>";
 
$ultimo=array_pop($a);   //GUARDO EL VALOR DE LA ULTIMA POSICIÓN
 
array_unshift($a,$ultimo);  //LO PONGO EL PRIMERO
 
 //VUELVO A MOSTRAR
 
echo "<br>";echo "<br>";
 
echo "<table border=1 width=200px >";
 
    for($i=0;$i<count($a);$i++){
 
        echo "<tr>";
 
            for($j=0;$j<count($a[0]);$j++){
                echo "<td>".$a[$i][$j]."</td>";
            }
 
        echo "</tr>";
    }
echo "</table>";
 
?>

el problema es que me pone el ultimo número en la primera fila PERO al final de la columna, no al principio.
de modo que

59 87 27 20 98 12 87
46 26 47 33 16 48 78
31 34 46 59 45 63 43
92 34 59 78 42 39 25
91 54 46 88 35 41 24
84 51 76 51 84 91 16


84 51 76 51 84 91 16
59 87 27 20 98 12 87
46 26 47 33 16 48 78
31 34 46 59 45 63 43
92 34 59 78 42 39 25
91 54 46 88 35 41 24

a ver si alguien puede decirme cual es el error o simplemente no se pude usar este función (tendría que hacerlo con funciones no con el método burbuja..)gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Rotar matriz array_unshift

Publicado por Oscar (3 intervenciones) el 17/11/2021 20:40:38
<?php
//Nota: solo muestra la ultima fila formada de primero, continuando con la primera de la otra matriz, invirtiendo
// el ultimo for de j a i

for($i=0;$i<5;$i++){
for($j=0;$j<6;$j++){
$aleatorio=mt_rand(1,9);
$a[$i][$j]=$aleatorio;
}

}

echo "<br>"; //LA MUESTRO EN UNA TABLA

echo "<table border=1 width=200px >";

for($i=0;$i<count($a);$i++){

echo "<tr>";

for($j=0;$j<count($a[0]);$j++){
echo "<td>".$a[$i][$j]."</td>";
}
echo "</tr>";
}
echo "</table>";

echo "<br>";echo "<br>";

$ultimo=array_pop($a); //GUARDO EL VALOR DE LA ULTIMA POSICIÓN

array_unshift($a,$ultimo); //LO PONGO EL PRIMERO

//VUELVO A MOSTRAR

echo "<br>";echo "<br>";

echo "<table border=1 width=200px >";

for($j=0;$j<count($a);$j++){

echo "<tr>";

for($i=0;$i<count($a[0]);$i++){
echo "<td>".$a[$j][$i]."</td>";
}

echo "</tr>";
}
echo "</table>";

?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Rotar matriz array_unshift

Publicado por Oscar (3 intervenciones) el 17/11/2021 20:59:32
<?php
//nota o bien su transpuesta jaja

for($i=0;$i<5;$i++){
for($j=0;$j<6;$j++){
$aleatorio=mt_rand(1,9);
$a[$i][$j]=$aleatorio;
}

}

echo "<br>"; //LA MUESTRO EN UNA TABLA

echo "<table border=1 width=200px >";

for($i=0;$i<count($a);$i++){

echo "<tr>";

for($j=0;$j<count($a[0]);$j++){
echo "<td>".$a[$i][$j]."</td>";
}
echo "</tr>";
}
echo "</table>";

echo "<br>";echo "<br>";

$ultimo=array_pop($a); //GUARDO EL VALOR DE LA ULTIMA POSICIÓN

array_unshift($a,$ultimo); //LO PONGO EL PRIMERO

//VUELVO A MOSTRAR


echo "<br>";echo "<br>";

echo "<table border=1 width=200px >";

for($i=0;$i<count($a);$i++){

echo "<tr>";

for($j=0;$j<count($a[0]);$j++){
echo "<td>".$a[$j][$i]."</td>";
}

echo "</tr>";
}
echo "</table>";

?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar