Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: mgarcia.informatico en 15 Enero 2015, 20:16 pm



Título: Consulta de arrays php
Publicado por: mgarcia.informatico en 15 Enero 2015, 20:16 pm
Estimados , necesito su ayuda.

Tengo una tabla que mediante esta funcion..

Código
  1. function getMonetario($year){
  2. global $link;
  3. $sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
  4. //echo $sql."--- $link";
  5. $consulta=mysql_query($sql, $link);
  6. //if(mysql_num_rows($consulta) > 0){
  7. if(mysql_num_rows($consulta)){
  8. $row = mysql_fetch_array($consulta);
  9.  
  10. return unserialize($row[0]);
  11. }
  12. else return "";
  13. }

obtengo un array(bidimencional) con los datos correspondientes. como por ejemplo quedaria asi graficamente en una tabla...
Código:
                        Columna
                       1,1     2       3      5
Fila                   2       4       5      7
                       3       1       6      8
                       2,1     4       3      9
entonces la idea es generar un script o funcion, y pueda obtener los valores.. solo diagonalmente es decir.. deberia imprimir:
1,1 4 6 9
en un array seria:
Código
  1. Array [0][0] = 1,1
  2. Array [1][1] = 4
  3. Array [2][2] = 6
  4. Array [3][3] = 9
  5.  
Espero que me puedan ayudar. Saludos
pd: viendo unos tutorias.. se realiza mediante *** for *** o foreach ***...pero como??

Mod: usa etiquetas GeSHi cuando publiques código, no escribas frases en mayúsculas


Título: Re: Consulta de arrays php
Publicado por: Shell Root en 15 Enero 2015, 20:54 pm
Por ejemplo, (creo que se llama diagonal principal)
Código
  1. $ehn[0] = array(1, 2, 3, 4);
  2. $ehn[1] = array(5, 6, 7, 8);
  3. $ehn[2] = array(9, 10, 11, 12);
  4. $ehn[3] = array(13, 14, 15, 16);
  5.  
  6. for($i=0; $i<=count($ehn)-1; $i++){
  7.    for($j=0; $j<=count($ehn[$i])-1; $j++){
  8.        if( $i == $j ){
  9.            echo $ehn[$i][$j]." ";
  10.        }
  11.    }
  12. }

Resultado,
Código:
1 6 11 16 


Título: Re: Consulta de arrays php
Publicado por: mgarcia.informatico en 15 Enero 2015, 21:17 pm
Estimado gracias por responder.. tengo claro.. de la maera que realizas el arrays. pero.. no se mas o menos como hacerlo... yo tengo el siguiente script FUNCTION
Código
  1. function getMonetario($year){
  2. global $link;
  3. $sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
  4. //echo $sql."--- $link";
  5. $consulta=mysql_query($sql, $link);
  6. //if(mysql_num_rows($consulta) > 0){
  7. if(mysql_num_rows($consulta)){
  8. $row = mysql_fetch_array($consulta);
  9.  
  10. return unserialize($row[0]);
  11. }
  12. else return "";
  13. }

Y cuando.. hago print de dicha funcion me genera esto...
Array
Código:
(
    [0] => Array
        (
            [1] => 0,6
            [2] => 0,8
            [3] => 1,3
            [4] => 2,1
            [5] => 2,8
            [6] => 3,1
            [7] => 3,2
            [8] => 3,4
            [9] => 3,7
            [10] => 4,6
            [11] => 5,7
            [12] => 5,7
        )

    [1] => Array
        (
            [2] => 0,2
            [3] => 0,7
            [4] => 1,5
            [5] => 2,1
            [6] => 2,5
            [7] => 2,5
            [8] => 2,8
            [9] => 3,1
            [10] => 4,0
            [11] => 5,1
            [12] => 5,1
        )

    [2] => Array
        (
            [3] => 0,5
            [4] => 1,3
            [5] => 2,0
            [6] => 2,3
            [7] => 2,4
            [8] => 2,6
            [9] => 2,9
            [10] => 3,8
            [11] => 4,9
            [12] => 4,9
        )

    [3] => Array
        (
            [4] => 0,8
            [5] => 1,5
            [6] => 1,8
            [7] => 1,9
            [8] => 2,1
            [9] => 2,4
            [10] => 3,3
            [11] => 4,4
            [12] => 4,4
        )

    [4] => Array
        (
            [5] => 0,6
            [6] => 1,0
            [7] => 1,0
            [8] => 1,2
            [9] => 1,6
            [10] => 2,4
            [11] => 3,5
            [12] => 3,5
        )

    [5] => Array
        (
            [6] => 0,3
            [7] => 0,4
            [8] => 0,6
            [9] => 0,9
            [10] => 1,8
            [11] => 2,9
            [12] => 2,9
        )

    [6] => Array
        (
            [7] => 0,1
            [8] => 0,3
            [9] => 0,6
            [10] => 1,5
            [11] => 2,5
            [12] => 2,5
        )

    [7] => Array
        (
            [8] => 0,2
            [9] => 0,6
            [10] => 1,4
            [11] => 2,5
            [12] => 2,5
        )

    [8] => Array
        (
            [9] => 0,3
            [10] => 1,2
            [11] => 2,2
            [12] => 2,2
        )

    [9] => Array
        (
            [10] => 0,8
            [11] => 1,9
            [12] => 1,9
        )

    [10] => Array
        (
            [11] => 1,0
            [12] => 1,1
        )

    [11] => Array
        (
            [12] => 0,0
        )

)

En otras palabras todo ese arrays.. forma una tabla.. con estos.. valores..
de filas y columnas
como puedes ver no esta declarado el array como tu ejemplo... si no que obtiene todo el array al hacer una consulta...
ya que.. esos valores van cambiando.. segun el.. año.. es decir.. los valores del año.. 2015... van a hacer distinto.. al de 2014...

Quedo atento a tu comentario



Título: Re: Consulta de arrays php
Publicado por: Shell Root en 15 Enero 2015, 21:23 pm
Es que el array que declare sólo fue por ingresar los valores imaginarios, ahora lo puedes implementar usando,

Código
  1. $ehn = function_php();
  2. # Aquí la variable $ehn tiene el array con los valores de la consulta SQL
  3. for($i=0; $i<=count($ehn)-1; $i++){
  4.    for($j=0; $j<=count($ehn[$i])-1; $j++){
  5.        if( $i == $j ){
  6.            echo $ehn[$i][$j]." ";
  7.        }
  8.    }
  9. }


Título: Re: Consulta de arrays php
Publicado por: mgarcia.informatico en 15 Enero 2015, 21:36 pm
estimado.. estoy.. casi a punto.. de la solucion...
este es mi script..
para.. mostrar los valores.. de una tabla.. de filas y columnas:...
FUNCTION para mostrar el array de valores filas y columnas

Código
  1. function getMonetario($year){
  2. global $link;
  3. $sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
  4. //echo $sql."--- $link";
  5. $consulta=mysql_query($sql, $link);
  6. //if(mysql_num_rows($consulta) > 0){
  7. if(mysql_num_rows($consulta)){
  8. $row = mysql_fetch_array($consulta);
  9.  
  10. return unserialize($row[0]);
  11. }
  12. else return "";
  13. }
  14.  
Y cuando.. hago print de esta forma...

Código
  1. $arrayYear = getMonetario(2014);
  2. echo "<pre>";
  3. print_r ($arrayYear);
  4. echo "</pre>";

para mostrarme.. los valores de la tabla de columnas y filas en un arrar que es lo correcto..

Código:
Array
(

=> Array
(
[1] => 0,6
[2] => 0,8
[3] => 1,3
[4] => 2,1
[5] => 2,8
[6] => 3,1
[7] => 3,2
[8] => 3,4
[9] => 3,7
[10] => 4,6
[11] => 5,7
[12] => 5,7
)

[1] => Array
(
[2] => 0,2
[3] => 0,7
[4] => 1,5
[5] => 2,1
[6] => 2,5
[7] => 2,5
[8] => 2,8
[9] => 3,1
[10] => 4,0
[11] => 5,1
[12] => 5,1
)

[2] => Array
(
[3] => 0,5
[4] => 1,3
[5] => 2,0
[6] => 2,3
[7] => 2,4
[8] => 2,6
[9] => 2,9
[10] => 3,8
[11] => 4,9
[12] => 4,9
)

[3] => Array
(
[4] => 0,8
[5] => 1,5
[6] => 1,8
[7] => 1,9
[8] => 2,1
[9] => 2,4
[10] => 3,3
[11] => 4,4
[12] => 4,4
)

[4] => Array
(
[5] => 0,6
[6] => 1,0
[7] => 1,0
[8] => 1,2
[9] => 1,6
[10] => 2,4
[11] => 3,5
[12] => 3,5
)

[5] => Array
(
[6] => 0,3
[7] => 0,4
[8] => 0,6
[9] => 0,9
[10] => 1,8
[11] => 2,9
[12] => 2,9
)

[6] => Array
(
[7] => 0,1
[8] => 0,3
[9] => 0,6
[10] => 1,5
[11] => 2,5
[12] => 2,5
)

[7] => Array
(
[8] => 0,2
[9] => 0,6
[10] => 1,4
[11] => 2,5
[12] => 2,5
)

[8] => Array
(
[9] => 0,3
[10] => 1,2
[11] => 2,2
[12] => 2,2
)

[9] => Array
(
[10] => 0,8
[11] => 1,9
[12] => 1,9
)

[10] => Array
(
[11] => 1,0
[12] => 1,1
)

[11] => Array
(
[12] => 0,0
)

)

pero.. ahora. estoy.. creando una funcion... para.. poder.. imprimir.. los datos de dicho array....en diagonal principal..

estoy.. haciendo.. esto pero.. no resulta.. ayudame.. por fa.. si estoy.. vien o mal..
funcion para mostrar valores en diagonal


Código
  1. function getValorizacionMes(){
  2. global $_POST, $meses;
  3. $anoAdquirido = 2014;
  4.  
  5. $ehn = getMonetario($anoAdquirido);
  6. # Aquí la variable $ehn tiene el array con los valores de la consulta SQL
  7. for($i=0; $i<=count($ehn)-1; $i++){
  8. for($j=0; $j<=count($ehn[$i])-1; $j++){
  9. if( $i == $j ){
  10. echo $ehn[$i][$j]." ";
  11. }
  12. }
  13. }


Título: Re: Consulta de arrays php
Publicado por: Shell Root en 15 Enero 2015, 22:37 pm
y cuando llamas la función que valor te sale? errores?
PD: Recuerda etiquetar el código dentro de [ code ]


Título: Re: Consulta de arrays php
Publicado por: engel lex en 16 Enero 2015, 01:08 am
Te modifiqué los temas

por favor al publicar codigo usa las etiquetas GeSHi, y al publicar datos usa la code (el simbolo numeral)

evita usar las mayusculas para escribir... si quieres resaltar algo hay herramientas para ello

procura publicar en elforo correcto (si es php va para php) y evita publicar más de una vez el mismo tema


Título: Re: Consulta de arrays php
Publicado por: MinusFour en 16 Enero 2015, 03:24 am
Lo puedes hacer con un solo for para sacar 0,0 1,1 2,2 3,3 etc.

Código
  1. $arr = array(
  2. array(1,2,3,4),
  3. array(5,6,7,8),
  4. array(9,10,11,12),
  5. array(13,14,15,16)
  6. );
  7.  
  8. for($i = 0;$i < count($arr); $i++){
  9. echo $arr[$i][$i] . " ";
  10. }