存储信息并拉出阵列

16 php sql

我有一个带有'genre'行的数据库,其中包含所有类型的电影类型,这些电影分隔的空间就像这样的一个例子

Animation Comedy Horror
Run Code Online (Sandbox Code Playgroud)

它们都是不同的类型,所以它们需要从数据库中取出并根据它们的类型放入一个数组我最初开始编码:

<?
sql = "SELECT moviename,genre FROM movieHosting";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
?>
Run Code Online (Sandbox Code Playgroud)

但是我很快意识到,如果我这样做,那么每个类型都需要被分成阵列

$genreArray = array($row->genre);
Run Code Online (Sandbox Code Playgroud)

但这不会起作用,它会生成一个像这样的数组

$genreArray = array("Animation Comedy Horror");
Run Code Online (Sandbox Code Playgroud)

但它需要产生

$genreArray = array("Animation","Comedy","Horror");
Run Code Online (Sandbox Code Playgroud)

Chi*_*gum 28

你尝试过使用爆炸功能吗?

就像是:

$genreArray = explode(" ", $row->genre);
Run Code Online (Sandbox Code Playgroud)

  • 我建议通过preg_split函数.更清洁,更简单,更快速.另一方面,为什么不通过一对多关系将数据库规范化以提高效率呢? (6认同)

小智 5

这里更接近你的逻辑.

$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
Run Code Online (Sandbox Code Playgroud)

希望我们的答案能够为您的问题带来更多的澄清.