将数组发送到mysql行并再次将其分解为变量

时间:2016-09-08 00:24:11

标签: php mysql

我有一个用于存储一些基本信息的客户端表,但在一行中它还存储了一个看起来像这样的数组,即 “1-1,2-1,3-1,6-1,7-1,16-1,17-1,18-1”

逗号分隔“选项”,破折号前面的数字是“选项”ID,短划线之后的数字是“选项”“数量”。每个客户可能有不同的“数量”

的“选项”

到目前为止,我有这个,但我不知道从哪里开始。

<?php
        $out = "";
        $id_client ="";
        $id_client = $_SESSION['client_cod_card'];
        $sql="SELECT * FROM customer WHERE client_cod_card='$id_client'";
  $result = mysql_query ($sql);
  while ($row = mysql_fetch_array($result)){

      $in = $row['options'];
      $out = str_replace(',', '<br />', $in);

      echo $out;} ?>

它给了我这个

1-1
2-1
3-1
6-1
7-1
16-1
17-1
18-1

有没有办法将该字符串回显为:

$ option_id - $ option_quantity
$ option_id - $ option_quantity
$ option_id - $ option_quantity
$ option_id - $ option_quantity
..

所以我可以使用这些数字并从另一张表中获取每个选项的信息并调整数量。

我希望我设法解释这有点可以理解,我希望有人可以帮助我,因为这是我最沮丧的事情。 提前谢谢大家!

1 个答案:

答案 0 :(得分:1)

您可以使用explode()将值拆分为其各个部分。首先在逗号上拆分整个列表,然后在连字符上拆分每个选项。

$option_array = explode(',', $row['options'];
foreach ($option_array as $opt) {
    list($option_id, $option_quantity) = explode('-', $opt);
    // Use $option_id and $option_quantity here
}