根据数组中的数据匹配列的行

时间:2017-11-07 13:53:35

标签: php

我有两个衬托阵列,其中一个我在另一个维度中保持颜色。我使用那些数组进行查询,然后在表中打印结果。

String inputFile = new Scanner(new File("SalesData.txt"))
        .useDelimiter("\\A").next();

String[] s = inputFile.split(",");
double[] dValue = new double[s.length];
for (int i = 0; i < s.length; i++) {
    dValue[i] = Double.parseDouble(s[i]);
}
for (double d : dValue) {
    System.out.println(d);
}

根据上面的值,我进行查询:

$colors = array(
"27" => "RAL 9002", 
"255" => "RAL 9006", 
"341" => "RAL 8019", 
"286" => "RAL 7016", 
"141" => "RAL 3009",
"171" => "RAL 6028", 
"121" => "RAL 8004", 
"221" => "RAL 5010",
"101" => "RAL 3000", 
"273" => "RAL 9007"); 

$dimensions =  array
  (
  array(0.3,1245),
  array(0.35,1245),
  array(0.40,1100),
  array(0.45,1245),
  array(0.50,1245),
  array(0.60,1245),
  array(0.70,1245) 
  );

我从上面收到的结果我应该打印在表格中。由于某种原因,我没有得到好结果,它总是显示红色。不确定我是否应该使用isset()函数。

foreach($colors as $key => $value)
    {

foreach($dimensions as $data )
    { 
        $sql = "SELECT sum(Kolicina) as suma 
        FROM materijali WHERE Debljina = $data[0] AND Sirina = $data[1] AND Boja = $key";

        $q = $conn->query($sql);

        while($r=$q->fetch()) {

            $debljina = $data[0];
            $sirina = $data[1];
            $kolicina = $r["suma"];
            $kod = $key;

            if(empty($kolicina)) {
                $kolicina = '0.00';
            }

            $vrijednosti[] = $debljina.'x'.$sirina.'--'.$kod;
        }

    }
}

当我转储数组$ vrijednosti时,我得到以下格式(我只花了5个元素)

<div class="col-lg-6">
    <table class="table table-bordered">
        <thead> 
            <tr>
                <th><?php echo "Dimenzije"; ?> </th>
                <?php foreach($colors as $boja) { ?>            
                <th><?php echo $boja; ?> </th> 
                <?php  } ?>
            </tr> 
        </thead>
        <tbody> 
        <?php foreach($dimensions as $dim) {  
           ?>
            <tr>  
                <td><?php  
                echo $dim[0] . ' X ' . $dim[1]; ?>  </td>  
                <?php
                    foreach($colors as $key => $value) {    
                        // if ($vrijednosti[$dim[0].'--'.$dim[1].'--'.$key]) {  
                        if (isset($vrijednosti[$dim[0].'x'.$dim[1] .'--'.$key])) {  

                            echo '<td style="background:blue"> </td>';  
                        }  

                        else {

                            echo '<td style="background:red">' .$vrijednosti[$dim[0].'x'.$dim[1] .'-'.$key] .' </td>'; 

                        }

                    }
                ?>  </td> 
            </tr>
            <?php } 

        ?>
        </tbody>
    </table>
</div>

表没有显示出良好的效果,不知道可能出现什么问题?任何帮助将不胜感激。

表格如下。表格看起来很好。在单元格中,它应该显示$ kolicina,我在循环中进入。

enter image description here

1 个答案:

答案 0 :(得分:0)

#include <stdio.h>

void abrirArchivo(FILE *archivo);
void cerrarArchivo(FILE *archivo);
void listar(FILE *archivo);

struct Libro {
   char isbn[ 13 ];     /* número de libro */
   char nombre[ 30 ];   /* nombre de libro */
   char autor[ 30 ];    /* nombre del autos */
   int edicion;         /* edicion */ 
};

FILE *archivo;     /* archivo = puntero al archivo clientes.dat */

int main()
{
    abrirArchivo(archivo);
    listar(archivo);
    cerrarArchivo(archivo);

    return 0; /* indica terminación exitosa */
}

void abrirArchivo(FILE *archivo){
    if ( ( archivo = fopen( "libros.dat", "rb" ) ) == NULL ) {
       printf( "El archivo no pudo abrirse" );
    }
}

void cerrarArchivo(FILE *archivo){
    fclose(archivo);
}

void listar(FILE *archivo){
    struct Libro libro;

    printf("ISBN\tNombre\tAutor\tEdicion\n");

    fread(&libro, sizeof(struct Libro), 1, archivo);

    while(!feof(archivo)){
        printf("%s\t\t%s\t\t%s\t%d\n", libro.isbn, libro.nombre, libro.autor, libro.edicion);
        fread(&libro, sizeof(struct Libro), 1, archivo);
    }

}

创建一个数字索引数组。但是你的$vrijednosti[] = $debljina.'x'.$sirina.'--'.$kod; 检查$ vrijednosti中是否存在数组键:

if

总是假的。你必须检查一个元素,而不是一个键:

if (isset($vrijednosti[$dim[0].'x'.$dim[1] .'--'.$key])) { ... }