首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分割前额是不正确的

分割前额是不正确的
EN

Stack Overflow用户
提问于 2014-01-24 18:15:11
回答 1查看 99关注 0票数 3

我有按国家划分城市名单的代码:

代码语言:javascript
复制
<?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>";
}
?>

我得到我需要的选项组,但是使用的是"Array“这个词,而不是值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-24 18:18:49

这是因为$country是一个数组。您需要主数组元素的键。您可以通过以下方式实现这一目标:

代码语言:javascript
复制
foreach($data as $country => $cities){
echo "<optgroup label='{$country}'>";
  foreach($cities as $city){
  echo "<option value='{$city}'>{$city}</option>";
  }
echo "</optgroup>";
}

通过这种方式,您还可以获取密钥。您的数组如下:

代码语言:javascript
复制
$data = array(
  "Spain" => array(
    "Madrid",
    "Barcelona",
    "Valencia"),
  "UK" => array(
     "London",
     "Oxford"));

因此,您试图在脚本中访问它(对于第一次迭代):

代码语言:javascript
复制
echo array(
    "Madrid",
    "Barcelona",
    "Valencia");

这不起作用(它会打印数组)。相反,您想要访问“西班牙”键,可以通过以下方式访问这个键:

代码语言:javascript
复制
 foreach ($smth as $Key => $Value)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21339568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档