Deje la columna vacía cuando la cadena no coincida con el encabezado PHP
Frecuentes
Visto 86 equipos
3
Ahora tengo un problema, realmente no sé por dónde empezar a mirar, quiero hacer una tabla que contenga los precios de los autos que cuesta alquilar por día, y el encabezado de la tabla son los modelos de autos y a la izquierda El lado de la tabla son las empresas de alquiler, y quiero poner los precios debajo del modelo de automóvil al que pertenece el precio, y los precios y los automóviles salen de una matriz y los modelos de automóviles pueden ser a veces 5 modelos y a veces más o menos , por lo que no puedo averiguar cómo ordenarlo con PHP o con JS,
Aquí hay un ejemplo de lo que quiero hacer,
Economy | Midsize | Fullsize
___________________________________________
Hertz | | 60.10 | 70.00
___________________________________________
Avis | $55.22 | 69.10 | 81.56
___________________________________________
Budget | $50.10 | | 70.00
Y a veces puede ser como,
Economy | Midsize | Fullsize
___________________________________________
Hertz | 60.10 | | 70.00
___________________________________________
Avis | $55.22 | | 81.56
___________________________________________
Budget | $50.10 | 69.10 | 70.00
La matriz es así,
Array(
[Hertz] => Array(
[Economy] => Array(
[0] =>
)
[Midsize] => Array(
[0] => 60.10
)
[Fullsize] => Array(
[0] => 70.00
)
)
[Avis] => Array(
[Economy] => Array(
[0] => 55.22
)
[Midsize] => Array(
[0] => 69.10
)
[Fullsize] => Array(
[0] => 81.56
)
)
[Budget] => Array(
[Economy] => Array(
[0] => 50.10
)
[Midsize] => Array(
[0] =>
)
[Fullsize] => Array(
[0] => 70.00
)
)
)
Como puede ver en el ejemplo anterior, quiero omitir una columna cuando hago un bucle en la matriz y, a veces, los autos pueden ser más de 3,
Nuevamente, depende de la salida de la matriz de lo que estoy obteniendo.
Entonces, ¿dónde puedo encontrar algunos scripts PHP o JS para hacer eso?
2 Respuestas
2
Podría usar foreach, esta función me está ayudando aproximadamente el 20% del día como desarrollador web. Todo lo que necesita hacer es organizar su matriz, en su caso puede trabajar con claves como marcas y valores para las columnas, en php podría verse así:
$aData = new array(
["empty"] => new array(
[0] => "Economy",
[1] => "Midsize",
[2] => "Fullsize",
),
["Hertz"] => new array(
[0] => "",
[1] => "60.10",
[2] => "70",
),
);
Si su matriz tiene esta estructura, la tabla hará el resto por usted:
<table>
<?php
foreach( $aData as $sRowName => $aCols ) {
?>
<tr>
<td>
<?php echo $sRowName; ?>
</td>
<?php
foreach( $aCols as $sColData ) {
if( $sColData !== "empty" ) {
echo "<td>$sColData</td>";
}
}
?>
</tr>
<?php
}
?>
</table>
Puede agregar tantas filas y columnas a la matriz como desee, foreach realizará un bucle para cada elemento a través de él;)
Respondido el 12 de junio de 12 a las 21:06
Gracias Nurickan, creo que esta fue la mejor respuesta para mí hasta ahora, y tendré que trabajar con ella. - elgrede
1
Puede insertar una entrada en blanco en la tabla pero no poner ningún contenido en una <td>
. Por ejemplo, la fila de Hertz sería:
<tr>
<td>Hertz</td>
<td></td>
<td>60.10</td>
<td>70.00</td>
</tr>
Y de manera similar, la fila de Presupuesto será:
<tr>
<td>Budget</td>
<td>$50.10</td>
<td></td>
<td>70.00</td>
</tr>
Para generarlo, puedes hacer algo como
if (is_null($price))
{
echo "<td></td>";
}
else
{
echo "<td>" . $price . "</td>";
}
Respondido el 12 de junio de 12 a las 21:06
Gracias, sé esto incluso hasta ahora, estoy buscando hacerlo cuando repita el resultado con una matriz, y eso <td>
a veces puede estar vacío ya veces con una cadena. - elgrede
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript php arrays html-table or haz tu propia pregunta.
No sé por dónde empezar, estoy buscando una pista donde pueda encontrar algo que haga eso, - thegrede
¿Cómo se ve tu matriz? Eso nos ayudaría a comprender la estructura para ayudar con el bucle para imprimir la tabla. un print_r de la matriz ayudaría en ambos escenarios: Kris.Mitchell