>我有一个数据库,其中有一行"流派",其中包含由空格分隔的电影的所有类型的流派,例如
Animation Comedy Horror
它们都是不同的流派,所以需要将它们从数据库中提取出来,并根据它们的流派放入一个数组中,我最初开始编写这个:
<?
sql = "SELECT moviename,genre FROM movieHosting";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
?>
但不久之后我很快意识到,如果我这样做,每个流派都需要单独放入数组中
。$genreArray = array($row->genre);
但这行不通,它会生成一个数组,例如
$genreArray = array("Animation Comedy Horror");
但它需要生成
$genreArray = array("Animation","Comedy","Horror");
你试过使用爆炸函数吗?
像这样:
$genreArray = explode(" ", $row->genre);
这里更接近你的逻辑。
$string = 'Animation Comedy Horror';
$genra = explode(" ", $string);
print_r($genra); //Array ( [0] => Animation [1] => Comedy [2] => Horror )
echo $genra[0]; //Animation
echo '<hr>'; // OR
foreach($genra as $value){
echo $value . '<br>';
}
// Output
Animation
Comedy
Horror
希望我们的回答能为您的问题带来更多澄清。
理解这些并相应地使用。
<?php
$str = "Animation Comedy Horror";
$str_arr = explode(' ', $str);
print_r($str_arr);
$str_arr = split(' +', $str);
print_r($str_arr);
$str_arr = preg_split('/ +/', $str);
print_r($str_arr);
?>
检查这个 : https://eval.in/532527
还了解,
爆炸 : http://php.net/manual/en/function.explode.php
孕分 : http://php.net/manual/en/function.preg-split.php
拆分 : http://php.net/manual/en/function.split.php
斯普利特现在被剥夺了。
$result = preg_split("/['s,]+/", "Animation Comedy Horror");
print_r($result );
print_r(implode(",",$result));
输出
Array ( [0] => Animation [1] => Comedy [2] => Horror )
Animation,Comedy,Horror
WARNING
停止使用 mysql_* 函数,原因有多种:完全删除、正式弃用、...对于详尽的列表,您可以阅读此线程为什么我不应该在 PHP 中使用 mysql_* 函数?,而是您可以使用 mysqli_* 或 PDO
我认为像你这样存储流派是一个非常糟糕的设计
您将如何更新数据 ?
如何按流派检索电影?
每个简单的SQL操作都将是一场噩梦,而不是这个,花时间纠正你的设计,例如你可以简单地从流派创建一个专用的表
ID | type
------------
1 | Comedy
2 | Horror
3 | Mangas
4 | ...
5 | Animation
并创建一个实体表,将电影与 [1, N] 类型相关联
MovieId | GenreId
-----------------
2 | 1
2 | 2
2 | 5
尝试使用 PHP 的 explode()
函数。 此函数需要 2 个参数、一个分隔符和一个字符串。 分隔符应该是您要在字符串中查找以分隔项目的内容。 在实践中,这看起来像:
$genreArray = explode(' ', $row->genre);
现在$genreArray
看起来像这样(从var_dump($genreArray)
生成的输出):
array(3) { [0]=> string(9) "Animation" [1]=> string(6) "Comedy" [2]=> string(6) "Horror" }
试试这个
-
通过多个阵列:
<? $sql = "SELECT moviename,genre FROM movieHosting"; $query = mysql_query($sql); $row = mysql_fetch_array($query); /* fetched value */ $moviename = $row['moviename']; $genre= $row['genre']; ?>
-
通过单个数组产生类似
$genreArray = array("Animation","Comedy","Horror");
的结果<? $sql = "SELECT moviename,genre FROM movieHosting"; $query = mysql_query($sql); $row = mysql_fetch_array($query); /* fetched value */ $array =array(); foreach($row as $r){ $moviename = $r['moviename']; $genre = $r['genre']; $array_push = array_push($array,$moviename,$genre); print_r($array_push); } ?>
$genreArray = preg_split("/['s,]+/", "Animation Comedy Horror");
print_r($genreArray );
输出:
Array
(
[0] => Animation
[1] => Comedy
[2] => Horror
)