【问题标题】:Add additional element to array向数组添加其他元素
【发布时间】:2015-04-09 16:31:18
【问题描述】:

如果我有一个数组$MovieDetails = array();,并且它由下面的查询填充一个 foreach 循环(5 个元素;id, movie_year, genre, image, movie_name),我如何在数组末尾添加另一个元素(movie_rating

$AllMovies = $con ->query
("
    SELECT id, movie_year, genre, image, movie_name FROM movies; 
");

 while($row = $AllMovies->fetch_object())  {
        $MovieDetails[] = $row;
    }  

【问题讨论】:

  • 在将其添加到movieDetails之前使用$row['movie_rating']将其添加到$row
  • 您还可以将其更改为$MovieDetails[$row['id']] = $row;,以便以后添加它。然后如果你知道电影id,你可以$MovieDetails[$id]['movie_rating'] = $rating;
  • 您正在以StdClass 对象的形式获取结果。您需要更改为 fetch_array() 才能让发布的答案起作用

标签: php arrays


【解决方案1】:

将电影分级添加到$row

如果您将其作为对象使用,则为 $row->movie_rating = 1.5

while($row = $AllMovies->fetch_object())  {
    $row->movie_rating = 1.5;
    $MovieDetails[] = $row;
}  

如果您将其用作数组,请使用 fetch_assoc()$row['movie_rating'] = 1.5

while($row = $AllMovies->fetch_assoc())  {
    $row['movie_rating'] = 1.5;
    $MovieDetails[] = $row;
}  

【讨论】:

  • 我返回错误`不能使用 stdClass 类型的对象作为数组`
  • 应该是fetch_array()
  • @McNoodles:如果您使用它作为对象,应该有$row->movie_rating = 1.5。如果需要数组,请将fetch_object 更改为fetch_array
  • @panther 你应该在你的答案中反映这一点,因为你的答案在这一点上是不正确的......
【解决方案2】:

这样你的行就是一个对象

$AllMovies = $con->query("SELECT id, movie_year, genre, image, movie_name FROM movies;");
while($row = $AllMovies->fetch_object())  {
   $row->movie_rating = 'movieRating'; 
   $MovieDetails[] = $row;
}

如果你希望每一行都是数组,你应该这样做:

while($row = $AllMovies->fetch_array())  {
   $row['movie_rating'] = 'movieRating'; 
   $MovieDetails[] = $row;
}

【讨论】:

  • 应该是fetch_array()
【解决方案3】:
$MovieDetails['movie_rating'] = $movie_rating; 

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2019-09-04
    • 2014-08-03
    • 1970-01-01
    • 2012-03-23
    相关资源
    最近更新 更多