如何在函数中的while循环外获取php变量

如何在函数中的while循环外获取php变量,php,Php,这是我能想到的最好的,但它不起作用。我试着做了一块饼干,但它仍然不能按我想要的方式工作 function getTowns($conn) { $sql = "SELECT towns.name, towns.id, regions.name AS region_name FROM towns INNER JOIN regions ON towns.region_id = regions.id ORDER BY name ASC"; $result = $conn->quer

这是我能想到的最好的,但它不起作用。我试着做了一块饼干,但它仍然不能按我想要的方式工作

function getTowns($conn)
{
    $sql = "SELECT towns.name, towns.id, regions.name AS region_name FROM towns INNER JOIN regions ON towns.region_id = regions.id ORDER BY name ASC";
    $result = $conn->query($sql);
    $town_opt = ''; //stands for town option

    town_opt .= "<datalist id='townlist'>";
    while ($row = $result->fetch_assoc()) {
        $town_id = $row['id'];
        $town_opt .= "<option>" . $row['name'] . ", " . $row['region_name'] .  "</option>";
    }

    $town_opt .= "</datalist>";
    return $town_opt;
};

echo $town_id;
echo getTowns($conn);
//how can I echo every town id? 

返回一个数组,第一个值是您想要的一个值,第二个值是另一个值

它给我这个错误消息:注意:第67行的C:\xampp\htdocs\skathy\book.php中的数组到字符串转换array///第67行是/$town\u id echo$towns[1];检查解决方案,它应该是print\r$towns[1]
function getTowns($conn)
{
    $sql = "SELECT towns.name, towns.id, regions.name AS region_name FROM towns INNER JOIN regions ON towns.region_id = regions.id ORDER BY name ASC";
    $result = $conn->query($sql);
    $town_opt = ''; //stands for town option

    // We first set the town_id placeholder
    $town_id = array();


    town_opt .= "<datalist id='townlist'>";
    while ($row = $result->fetch_assoc())
    {
        // We add the ID into our array
        $town_id[] = $row['id'];

        $town_opt .= "<option>" . $row['name'] . ", " . $row['region_name'] .  "</option>";
    }
    $town_opt .= "</datalist>";

    // We return an array
    return array($town_opt, $town_id);

    /* Or you could use this
    return array('town_opt' => $town_opt, 'town_id' => $town_id);

    And then use them like so:

        $towns = getTowns($conn);

        // $town_opt
        echo $towns['town_opt'];

        // $town_id
        print_r($towns['town_id]);

    */
};

$towns = getTowns($conn);

// $town_opt
echo $towns[0];

// $town_id
print_r($towns[1]);