Estimados , necesito su ayuda.
Tengo una tabla que mediante esta funcion..
function getMonetario($year){
global $link;
$sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
//echo $sql."--- $link";
$consulta=mysql_query($sql, $link);
//if(mysql_num_rows($consulta) > 0){
if(mysql_num_rows($consulta)){
$row = mysql_fetch_array($consulta);
return unserialize($row[0]);
}
else return "";
}
obtengo un array(bidimencional) con los datos correspondientes. como por ejemplo quedaria asi graficamente en una tabla...
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:
Array [0][0] = 1,1
Array [1][1] = 4
Array [2][2] = 6
Array [3][3] = 9
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
Por ejemplo, (creo que se llama diagonal principal)
$ehn[0] = array(1, 2, 3, 4);
$ehn[1] = array(5, 6, 7, 8);
$ehn[2] = array(9, 10, 11, 12);
$ehn[3] = array(13, 14, 15, 16);
for($i=0; $i<=count($ehn)-1; $i++){
for($j=0; $j<=count($ehn[$i])-1; $j++){
if( $i == $j ){
echo $ehn[$i][$j]." ";
}
}
}
Resultado,
1 6 11 16
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
function getMonetario($year){
global $link;
$sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
//echo $sql."--- $link";
$consulta=mysql_query($sql, $link);
//if(mysql_num_rows($consulta) > 0){
if(mysql_num_rows($consulta)){
$row = mysql_fetch_array($consulta);
return unserialize($row[0]);
}
else return "";
}
Y cuando.. hago print de dicha funcion me genera esto...
Array
(
[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
Es que el array que declare sólo fue por ingresar los valores imaginarios, ahora lo puedes implementar usando,
$ehn = function_php();
# Aquí la variable $ehn tiene el array con los valores de la consulta SQL
for($i=0; $i<=count($ehn)-1; $i++){
for($j=0; $j<=count($ehn[$i])-1; $j++){
if( $i == $j ){
echo $ehn[$i][$j]." ";
}
}
}
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
function getMonetario($year){
global $link;
$sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
//echo $sql."--- $link";
$consulta=mysql_query($sql, $link);
//if(mysql_num_rows($consulta) > 0){
if(mysql_num_rows($consulta)){
$row = mysql_fetch_array($consulta);
return unserialize($row[0]);
}
else return "";
}
Y cuando.. hago print de esta forma...
$arrayYear = getMonetario(2014);
echo "<pre>";
print_r ($arrayYear);
echo "</pre>";
para mostrarme.. los valores de la tabla de columnas y filas en un arrar que es lo correcto..
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
function getValorizacionMes(){
global $_POST, $meses;
$anoAdquirido = 2014;
$ehn = getMonetario($anoAdquirido);
# Aquí la variable $ehn tiene el array con los valores de la consulta SQL
for($i=0; $i<=count($ehn)-1; $i++){
for($j=0; $j<=count($ehn[$i])-1; $j++){
if( $i == $j ){
echo $ehn[$i][$j]." ";
}
}
}
y cuando llamas la función que valor te sale? errores?
PD: Recuerda etiquetar el código dentro de [ code ]
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
Lo puedes hacer con un solo for para sacar 0,0 1,1 2,2 3,3 etc.
$arr = array(
array(1,2,3,4),
array(5,6,7,8),
array(9,10,11,12),
array(13,14,15,16)
);
for($i = 0;$i < count($arr); $i++){
echo $arr[$i][$i] . " ";
}