Deje la columna vacía cuando la cadena no coincida con el encabezado PHP

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?

preguntado el 12 de junio de 12 a las 20:06

No sé por dónde empezar, estoy buscando una pista donde pueda encontrar algo que haga eso, -

¿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:

2 Respuestas

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

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 or haz tu propia pregunta.