【问题标题】:Getting array key(from column 2) and array value(from column 1) from database从数据库中获取数组键(来自第 2 列)和数组值(来自第 1 列)
【发布时间】:2019-12-11 09:55:02
【问题描述】:

我有一个看起来像这样的数组

$casearrayF = array(
        '0' => 'a',
        '0' => 'b', 
        '15' => 'c');

我想通过从数据库中获取数据来创建一个相似数组,数据表如下所示

letter | value | 
a      | 0     |
b      | 0     |
c      | 15    |
       | 0     |

我当前的php代码是

$hostname = "localhost";
$username = "root";
$password = "";
$db = "test";
$conn = mysqli_connect($hostname, $username,  $password,  $db);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM alphabet WHERE letter <> ''";
$result = mysqli_query($conn, $sql);
$array = array();
while($row = mysqli_fetch_assoc($result)) {
    $array[$row['value']] = $row['letter'];
}

我现在面临的问题是当尝试echo key($array) 时,值都是 0 而不是 0,0,15。我做错了吗?

【问题讨论】:

  • 具有相同键的数组不能存在
  • 使用array_flip
  • 不清楚你想做什么。正如所指出的,数组不能有重复的键。还有key() 可能不会像你想的那样做,你为什么要使用它?
  • 我正在尝试使用&lt;option value = $row'letter'&gt; 做一个&lt;select&gt;&lt;option&gt; 下拉列表,并将选定的选项值与数组值进行比较,并获取为字母@ 分配的值的特定键Dharman 有什么办法让我这样做,因为密钥不能具有相同的值?

标签: php arrays mysqli


【解决方案1】:

也许你希望你的数组看起来像这样:

[['a',0],['b',0],['c',15]]

那么你会:

array_push($array,[$row['letter'], $row['value']]);

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多