2016-11-30 34 views
0

所以我試圖將數組中的每個值轉換爲一個字符串..但我無法讓它工作。 我最好的結果是從值中獲取字母。PHP:數組值到字符串

我有,我張貼複選框值放進數據庫的形式,後來我想呼應所選值:

<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’」; 
… 
} 

在數據庫行選定值這個樣子的; 「Rock,Funk,Jazz」

很好。一切似乎都應該如此。 但我無法弄清楚如何來分隔值..

 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(岩石中的第一個字母 - 第一個值) 我試圖內爆..不會有所作爲。 那麼如何將每個值轉換爲一個字符串?

+0

您有一個數組有一個元素'[0]',一個逗號分隔的列表。 –

+0

開關'$ row_genre = array($ row [1]);'''row_genre = explode(',',$ row [1]);'。然後只使用'echo $ value;' – JOUM

回答

1

看起來像$row[1] = Rock,Funk,Jazz所以$row[1]本身是一個字符串,逗號分隔值。

如果你想將字符串轉換爲一個數組,你可以使用explode功能做到這一點:

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

那麼你可以去通過$row_gen數組是這樣的:

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

是的!爆炸就是答案! 當我做一個print_r我得到這個結果: Array([0] => Rock [1] => Funk [2] => Jazz [3]) 看起來好多了。 我必須做這樣的foreach: foreach($ row_genre as $ key => $ value){ echo「$ value」; } 爲了得到我想要的結果。 – user2254488

+0

如果你只是想使用值,那麼你也可以使用$ row_genre作爲$ val –

0

您有一個包含一個字符串元素的數組。您可以通過​​獲取數組值作爲其字符串。或者,如果您願意,可以在​​上執行explode(..)將逗號分隔值拆分爲它們自己的數組。

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

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