gpt4 book ai didi

php - 划分 foreach 不能正常工作

转载 作者:搜寻专家 更新时间:2023-10-31 21:35:23 27 4
gpt4 key购买 nike

我有按国家/地区划分城市列表的代码:

<?php
$pdo = new PDO(...);
$cities = $pdo->query('SELECT `city`, `country` FROM `cities` ORDER BY `id` ASC');
$cities->execute();
$data = array();
foreach($cities as $row) {
$data[$row['country']][] = $row['city'];
}
foreach($data as $country){
echo "<optgroup label='{$country}'>";
foreach($country as $city){
echo "<option value='{$city}'>{$city}</option>";
}
echo "</optgroup>";
}
?>

我在需要的地方得到了 optgroups,但使用的是“Array”而不是值

最佳答案

那是因为$country 是一个数组。你想要主数组的那个元素的键。您可以通过以下方式实现:

foreach($data as $country => $cities){
echo "<optgroup label='{$country}'>";
foreach($cities as $city){
echo "<option value='{$city}'>{$city}</option>";
}
echo "</optgroup>";
}

通过这种方式,您还可以获取 key 。你的数组是这样的:

$data = array(
"Spain" => array(
"Madrid",
"Barcelona",
"Valencia"),
"UK" => array(
"London",
"Oxford"));

所以你试图在你的脚本中访问它(第一次迭代):

echo array(
"Madrid",
"Barcelona",
"Valencia");

这是行不通的(它会打印 Array)。相反,您想访问“西类牙”键,可以通过编写 foreach 来访问它,例如:

 foreach ($smth as $Key => $Value)

关于php - 划分 foreach 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21339568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com