【问题标题】:PHP: Array Value to StringPHP:数组值到字符串
【发布时间】:2017-04-15 10:40:22
【问题描述】:

所以我试图将数组的每个值转换为字符串。但我无法让它工作。 我最好的结果是从值中获取字母。

我有一个表单,我将复选框值发布到数据库中,稍后我想回显所选值:

<form method="POST">
<div class="form-group">
   <label class="form-check-inline">
      <input class="form-check-input" type="checkbox" name="genre[]" value="Rock"> Rock</label>

<label class="form-check-inline">
   <input class="form-check-input" type="checkbox" name="genre[]" value="Funk"> Funk</label>

<label class="form-check-inline">
   <input class="form-check-input" type="checkbox" name="genre[]" value=“Jazz”> Jazz</label>
</div>
</form>

if(isset($_POST['update_profile'])){
    $genre = implode(',', $_POST['genre']);
    $sql_update = "UPDATE user_profile SET genre = ‘$genre’ WHERE user_id = ‘$user_id’”;
…
}

在数据库行中,选定的值如下所示; “摇滚、放克、爵士”

很好。一切似乎都正常工作。 但我不知道如何分隔值..

        if($result = mysqli_query($con, $sql_all_users)){
          if(mysqli_num_rows($result) > 0){
            while ($row = mysqli_fetch_row($result)){
              $row_genre = array($row[1]);

        foreach ($row_genre as $key => $value) {
        echo $value[1];
        }

        }
    }
}

当我执行 print_r ($row_genre); 我得到了这个结果:

Array ( [0] => Rock,Funk,Jazz)

这是一个什么样的数组?

我在 foreach 中回显的结果是 R(Rock 中的第一个字母 - 第一个值) 我试图内爆.. 没有什么不同。 那么如何将每个值转换为字符串呢?

【问题讨论】:

  • 你有一个包含一个元素[0]的数组,一个逗号分隔的列表。
  • $row_genre = array($row[1]); 切换为$row_genre = explode(',',$row[1]);。然后只使用echo $value;

标签: php arrays mysqli foreach


【解决方案1】:

您有一个数组,其中包含一个字符串元素。您可以通过$row_genre[0] 获取数组值作为其字符串。或者,如果您愿意,可以在 $row_genre[0] 上执行 explode(..) 以将逗号分隔的值拆分为它们自己的数组。

$genres = explode(',', $row_genre[0]);

http://php.net/manual/en/function.explode.php

【讨论】:

    【解决方案2】:

    看起来像$row[1] = Rock,Funk,Jazz 所以$row[1] 本身是一个字符串和逗号分隔的值。

    如果要将字符串转换为数组,可以使用explode 函数:

    $row_genre = explode(',', $row[1]);
    

    然后您可以像这样遍历 $row_gen 数组:

    foreach($row_genre as $val) {
        echo $val;
    }
    

    【讨论】:

    • 是的!爆炸就是答案!当我执行 print_r 时,我得到以下结果: Array ( [0] => Rock [1] => Funk [2] => Jazz [3] ) 看起来好多了。我不得不像这样制作 foreach: foreach ($row_genre as $key => $value) { echo "$value"; } 得到我想要的结果。
    • 如果你只想使用 value 那么你也可以只使用 $row_genre 作为 $val
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 2011-11-21
    • 1970-01-01
    • 2016-01-09
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    相关资源
    最近更新 更多