2012-05-12 56 views
0

我想我的新闻推送结果转换成一个数组,所以,我现在可以组的结果,并且有类似的条目“彼得和另外6人评论...”推(多维)数组多维数组在PHP

我想请求其他人,他们通过in_array()对同一个线程发表了评论。将是一个很好的解决方案。但是现在我很难将整个mysql结果转换为一个数组,而不必更改原始while循环的所有数据库值与$ getnews_row一起请求的整个结构。我认为我创建数组的方式可能有错误。

我在过去的一个小时中搜索了我的手,但我找不到任何实际将变量(数组)添加到多维数组的示例。

任何想法?

我的PHP:

$x = 0; 
while($getnews_row = mysql_fetch_array($res_getnews)) 
{ 
$this_getnewsrow = array 
    (
    [$x] => array 
    ($getnews_row) 
) 
    $x++; 
} 

$x = $x_total; 
$x=0; 
while($x < $x_total) 
{ 

    $getnews_row = $this_getnewsrow[$x]; 

    echo $getnews_row['id']; 

    x++; 
} 

我的输出:

解析错误:语法错误,意想不到 '[' 在上线48(第6行/newsfeed/index.php,期望 ')'此摘录)

回答

2

您不能以这种方式初始化数组。

尝试用这种

while($getnews_row = mysql_fetch_array($res_getnews)) 
{ 
$this_getnewsrow[] = $getnews_row; 
} 

更换此

$x = 0; 
while($getnews_row = mysql_fetch_array($res_getnews)) 
{ 
$this_getnewsrow = array 
    (
    [$x] => array 
    ($getnews_row) 
) 
    $x++; 
} 

看看PHP: Arrays


也可以尝试用$x_total = $x;

更换

并在第二个循环中添加$x变量。

+0

不起作用 - 我认为这些行可能会添加到$ this_getnewsrow中,但无法在第二个while循环中请求这些值。 –

+0

哦,工作!谢谢! :) –

0

试试这个:

$i = 0; 
while($getnews_row = mysql_fetch_array ($res_getnews)) { 
    $this_getnewsrow [$i] = $getnews_row; 
    $i++; 
} 

$j = 0; 
while($j < $i_total) 
{ 

    $getnews_row = $this_getnewsrow[$j]; 

    echo $getnews_row ['id']; 

    $j++; 
} 

UPDATE

<?php 
while ($row = mysql_fetch_array($res_getnews, MYSQL_ASSOC)) { 
    echo $row ['id']; 
} 
+0

同样的问题 - 我认为这些行可能被添加到$ this_getnewsrow中,但无法在第二个while循环中请求这些值。 –

+0

如果我正确理解您要实现的目标,我在ÚPDATE下放入的代码应符合您的目的;试一试! (只需用你的问题替换你粘贴的整个代码块) – Jeroen

+0

但是这不只是简单地从mysql获取值?我宁愿在第二个while循环中读取数组......当涉及到$ this_getnewsrow数组中的很多修改时,这会为我节省很多时间... –