将数组存储在 while 循环中以在外部使用


Store array in while loop to use outside

我想存储来自while循环的值,但不是以多维方式存储:

 $movies_id = array();
 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                $id = $row['id'];
                $title_id = $row['title_id'];
                    $movies_id[] = [$id => $title_id];
     }
print_r($movies_id);

我不明白的方式,怎么做,如果我只是写$movies_id = [$id => $title_id];它只显示最后一个值。

提前谢谢你。

您需要正确设置值。

            $movies_id = array();
            while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                $id = $row['id'];
                $title_id = $row['title_id'];
                    $movies_id[$id] = $title_id; // The proper way
                    //$movies_id[] = [$id => $title_id];
            }
            print_r($movies_id);

更具可读性的代码是:

            $movies_id = array();
            while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                    $movies_id[$row['id']] = $row['title_id'];
            }
            print_r($movies_id);

并将导致

array (
    1 => 'Title 1',
    2 => 'Title 2',
    4 => 'Title 4',
    8 => 'Title 8',
)

无钥匙的灵魂将是:

            $movies_id = array();
            while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                    $movies_id[] = $row['title_id'];
            }
            print_r($movies_id);

并将导致

array (
    0 => 'Title 1',
    1 => 'Title 2',
    2 => 'Title 4',
    3 => 'Title 8',
)

我可能误解了你的目标,但这可能会做到:

取代

$movies_id[] = [$id => $title_id];

 $movies_id[$id] = $title_id;

在低于 5.4 的 PHP 版本的情况下,您的代码将无法工作。在这种情况下,您可以使用以下内容。

        $movies_id = array();
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $id = $row['id'];
            $title_id = $row['title_id'];
            $movies_id[] = array($id => $title_id);
        }
        print_r($movies_id);

而不是这一行

$movies_id[] = [$id => $title_id];

使用以下方法

$movies_id[$id] = $title_id;