Rõ ràng, được rồi, đầu tiên nhặt nó ngoài do đó, có điều cần tìm hiểu:
while($row2 = mysql_fetch_array($result))
{
...
}
Phần nhìn này được rồi, hãy nhìn vào bên trong vòng lặp:
$myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
Có nhiều điểm. Có lẽ quan trọng nhất là, vì đó là bên trong một vòng lặp, bạn ghi đè lên $myarray
trong mỗi lần lặp. Thay vào đó, bạn muốn thêm vào mảng. Hãy làm điều này:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = $row2; # add the row
}
Sau đó bạn có thể xuất nó để chứng minh rằng nó về cơ bản hoạt động:
var_dump($myarray);
Điều đó cho thấy bạn là một mảng chứa tất cả các hàng. . Sau đó bạn chỉ cần thay đổi truy vấn cơ sở dữ liệu của bạn để nó chỉ trả về các lĩnh vực bạn quan tâm đến
Trong trường hợp bạn không thể làm điều đó với cơ sở dữ liệu, bạn có thể thao tác các mảng cũng như:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = array(
"id" => $theid,
"name" => name($id),
"text" => $row2['text']
);
}
var_dump($myarray);
Bây giờ kết quả sẽ giống như bạn muốn. Để xuất ra $myarray
:
foreach ($myarray as $number => $row)
{
echo '<div>Number ', $number, ':<dl>';
foreach ($row as $k => $v)
{
printf("<dt>%s</dt><dd>%s</dd>\n", $k, htmlspecialchars($v));
}
echo '</dl></div>'
}
Tôi có hai mảng và tôi muốn đặt chúng vào một biến. Tôi đang sử dụng dòng mã này $ finalarray = $ _SESSION ['SESS_ARRAY'] + $ myarray ;. Nhưng nó trở lại với tôi một lỗi nghiêm trọng. Bạn có thể giúp tôi được không? – anna
Tôi đã giải quyết nó bằng cách sử dụng array_merge(). – anna