在返回的 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++;
}
只需确保您有足够的键名来处理从查询中返回的所有记录。
我正在尝试将 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++;
}
只需确保您有足够的键名来处理从查询中返回的所有记录。