Печатать указанные c данные на веб-странице, используя php - PullRequest
0 голосов
/ 26 мая 2020

Это результат движка Solr, я попытался его декодировать и преобразовать в массив. Теперь у меня есть массив в этом формате, и я хочу отображать каждое значение каждого продукта на веб-странице. У каждого продукта есть имя, марка и категория ie как функции. Когда я попытался выполнить l oop с помощью foreach, я получил пустой результат. и вот мой массив:

array(5) {
  ["_version_"]=>
  array(7) {
    [0]=>
    float(1.6666659645964E+18)
    [1]=>
    float(1.6666659646163E+18)
    [2]=>
    float(1.6666659646173E+18)
    [3]=>
    float(1.6666659646184E+18)
    [4]=>
    float(1.6666659646194E+18)
    [5]=>
    float(1.6666659646205E+18)
    [6]=>
    float(1.6666659646236E+18)
  }
  ["categorie"]=>
  array(7) {
    [0]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
    [1]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
    [2]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
    [3]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
    [4]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
    [5]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
    [6]=>
    array(1) {
      [0]=>
      string(7) "Bonbons"
    }
  }
  ["id"]=>
  array(7) {
    [0]=>
    string(36) "64678881-ed19-47cf-aaf5-877d7b45a6c7"
    [1]=>
    string(36) "4abb6b91-5e03-44ef-b728-a7f900e7a9f8"
    [2]=>
    string(36) "0d6380fd-b7b9-4447-ba7f-bbb032e4c5be"
    [3]=>
    string(36) "3e21b671-5d0b-4c01-8f8f-3b3f4c14ea4f"
    [4]=>
    string(36) "8865f4a6-f6b3-40f7-ad74-a15fdda62c4f"
    [5]=>
    string(36) "a4a11941-02fc-473b-8d42-87b890e2b141"
    [6]=>
    string(36) "92d8adde-1805-4bcc-8aaf-52aafad783c0"
  }
  ["marque"]=>
  array(7) {
    [0]=>
    array(1) {
      [0]=>
      string(6) "MENTOS"
    }
    [1]=>
    array(1) {
      [0]=>
      string(6) "MENTOS"
    }
    [2]=>
    array(1) {
      [0]=>
      string(6) "MENTOS"
    }
    [3]=>
    array(1) {
      [0]=>
      string(6) "Mentos"
    }
    [4]=>
    array(1) {
      [0]=>
      string(6) "MENTOS"
    }
    [5]=>
    array(1) {
      [0]=>
      string(6) "MENTOS"
    }
    [6]=>
    array(1) {
      [0]=>
      string(6) "MENTOS"
    }
  }
  ["nom"]=>
  array(7) {
    [0]=>
    array(1) {
      [0]=>
      string(29) "Bonbons parfums fruits MENTOS"
    }
    [1]=>
    array(1) {
      [0]=>
      string(21) "Bonbons menthe MENTOS"
    }
    [2]=>
    array(1) {
      [0]=>
      string(37) "Bonbons caramel/chocolat blanc MENTOS"
    }
    [3]=>
    array(1) {
      [0]=>
      string(31) "Bonbons caramel/chocolat MENTOS"
    }
    [4]=>
    array(1) {
      [0]=>
      string(28) "Bonbons menthe sucres MENTOS"
    }
    [5]=>
    array(1) {
      [0]=>
      string(31) "Bonbons framboise orange MENTOS"
    }
    [6]=>
    array(1) {
      [0]=>
      string(26) "Bonbons pomme verte MENTOS"
    }
  }
} 

, и вот мой код, использующий для l oop:

<div class="row">
<?php
if (isset($_POST['execute'])) {
  $params=shell_exec('python Solr.py py2exe');
  $fp = fopen('results.json', 'w');
  fwrite($fp, $params);
  fclose($fp);
  $strJsonFileContents = file_get_contents("results.json",JSON_PRETTY_PRINT);
  $data=json_decode($strJsonFileContents,true);
  print_r($data);
  for($i=0;$i<7;$i++){
    ?>
  <div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
    <div class="row product1">
      <h3><?php echo $data[4][$i]; ?></h3>
      <div class="image">
       <img src="images/" alt="" class="responsive">
      </div>
      <div class="details">
        <span><strong>Marque: </strong><?php echo $data[3][$i]; ?></span><br>
        <span><strong>Categorie: </strong><?php echo $data[1][$i]; ?></span>
      </div>
    </div>
  </div>
<?php
}}
?>
</div>

Я редактировал l oop, потому что хочу, чтобы это происходило автоматически, поэтому я замените 7 на count ($ data). Теперь я получаю результат, но не весь результат. Он показывает только 5 продуктов, но у меня 7 продуктов. $ data - это мой массив выше. а вот мой отредактированный код:

  for($i=0;$i<sizeOf($data);$i++){
    ?>
  <div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
    <div class="row product1">
      <h3><?php echo $data['nom'][$i][0]; ?></h3>
      <div class="image">
       <img src="images/" alt="" class="responsive">
      </div>
      <div class="details">
        <span><strong>Marque: </strong><?php echo $data['marque'][$i][0]; ?></span><br>
        <span><strong>Categorie: </strong><?php echo $data['categorie'][$i][0]; ?></span>
      </div>
    </div>
  </div>
<?php
}

Как я могу это получить?

1 Ответ

0 голосов
/ 26 мая 2020

используйте это, но замените arrrayname на имя вашего массива:

for($i=0;$i<7;$i++){
   echo "version > ".arrayname[0][$i].", categorize > ".arrayname[1][$i].", id > ".arrayname[2][$i].", marque > ".arrayname[3][$i].", nom > ".arrayname[4][$i];

}

это использует индекс для ссылки на подмассив вместо имен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...