好的,我需要将从几个不同表中获取的数组推送到一个新数组中。我以为这会做到,但事实并非如此。一个警告说array_push()期望参数1是一个数组。可能有一些非常简单的事我做错了但是我对所有这些PHP的东西都不熟悉所以不知道。 我认为参数1是一个数组,因为数组是从数据库中获取的。
以下是代码:
$newsfeed = array("apple");
$news = mysql_query("
SELECT * FROM news
UNION ALL
SELECT * FROM feature ORDER BY timestamp DESC LIMIT 1
")or die(mysql_error());
while($row = mysql_fetch_array($news))
{
$artist = mysql_query("
SELECT * FROM members WHERE artist='Y'
ORDER BY timestamp DESC LIMIT 2
")or die(mysql_error());
while($row1 = mysql_fetch_array($artist))
{
array_push($newsfeed, $row['title'], $row1['artistname']);
}
}
echo($newsfeed);
答案 0 :(得分:2)
$ row ['title']不是数组..它是数组$ row的元素。
如果您想将所有'title'和'artistname'存储到数组中,您可以这样做
$artists = array();
array_push($artists, $row['title'], $row1['artistname']);
print_r($artists);
如果您想将'title'和'artistname'分组
$artists = array();
$artist_data = array('title' => $row['title'], 'artistname' => $row['artistname'])
array_push($artists, $artist_data);
print_r($artists);
答案 1 :(得分:1)
查看array_push的文档。第一个参数必须是您要推入的数组的名称。
array_push($myArray, $row['title'], $row1['artistname']);
$myArray
现在会有$row['title']
和$row1['artistname']
。
你在while循环中也缺少大括号。您只能在其后只有一行时省略大括号。无论如何,拥抱牙箍仍然是一种很好的做法。
如果您想查看数组的值,则应使用print_r
代替echo
。
如果要打印出数组的元素,则需要循环遍历它们。然后,当您只打印数组的一个元素时,可以使用echo
。您无法将其用于整个阵列,也只能打印array
。有关如何执行此操作的示例,请参阅foreach
文档:
$arr = array("one", "two", "three");
foreach ($arr as $value) {
echo $value;
}
答案 2 :(得分:0)
你能做点什么。
$artists=array();
$artists[ $row['title'] ] = $row1['artistname'];
或者我误解了这个问题?