在返回的 MySQL 值数组上设置索引

Set Indexes on array of returned MySQL Values

我正在尝试将 2d PHP 数组的索引从数字索引设置为键。到目前为止我所拥有的是:

$result = mysql_query("SELECT * FROM settings");
 if(mysql_num_rows($result) > 0 ){
        while($row = mysql_fetch_assoc($result)){
              $dataArray[] = $row ;
        }
}       

$value_to_display = $dataArray[0]['value'];

但是,我希望能够使用的是这样的东西:

$value_to_display = $dataArray['some_index_value']['value'];

有谁知道我怎样才能做到这一点?我尝试替换制作键数组然后使用组合,但我只能手动执行此操作。感谢您的帮助!

怎么样

while ($row = mysql_fetch_assoc($result)) {
   $dataArray[$row['somefield']] = $row;
}

假设 somefield 是唯一的,您将得到一个以该字段的值作为键的数组。如果您需要键入来自其他地方的名称,例如

$keynames = array('foo', 'bar', 'baz', ....);
$idx = 0;
while($row = mysql_fetch_assoc($result)) {
   $dataArray[$keynames[$idx]] = $row;
   $idx++;
}

只需确保您有足够的键名来处理从查询中返回的所有记录。