以下简单的代码我想在数组提取中将[3]
替换为2010-01-01
并将[6]
替换为edited
。我找到用键进行编辑的功能,但那不能正常工作
PHP:
while ( $aRow = mysql_fetch_array( $rResult ) )
{
replace_key('id', '00', $aRow);
$output['aaData'][] = $aRow;
}
结果:
Array
(
[0] =>aaaaaaa
[title] => bbbbbb
[1] => 86
[id] => 86
[2] => rewr
[subject] => rewr
[3] => 0000-00-00
[date_time] => 0000-00-00
[4] => admin
[username] => admin
[5] =>cccc
[6] =>ddddd
)
答案 0 :(得分:0)
使用mysql_fetch_array()
的默认参数,您的SQL查询将返回每行的索引和关联数组条目。
首先,我强烈建议您远离mysql_*
样式函数。这组工具现已弃用一段时间,不再更新。网上有大量资源可以更详细地解释原因,以及一些不错的选择。唉,让我们继续前进。
接下来,我建议(如果你需要使用这个函数)你使用一个返回格式方法或另一个,通过传递MYSQL_ASSOC
(关联数组)或MYSQL_NUM
(编号数组)该函数是它的第二个参数。
E.g。 MYSQL_ASSOC
会给你:
Array
(
[title] => bbbbbb
[id] => 86
[subject] => rewr
[date_time] => 0000-00-00
[username] => admin
)
通常,这在编号数组之上是有利的,因为您不必依赖于在查询中选择列的顺序。
E.g。 MYSQL_NUM
会给你:
Array (
[0] =>aaaaaaa
[1] => 86
[2] => rewr
[3] => 0000-00-00
[4] => admin
)
右。现在,要在while循环中编辑数组,只需添加以下行:
// Using MYSQL_ASSOC
while ( $aRow = mysql_fetch_array( $rResult , MYSQL_ASSOC ) ) {
$aRow['date_time'] = '2010-01-01';
$aRow['status'] = 'edited'; // Whatever key this column should be needs to be added instead of 'status'
$output['aaData'][] = $aRow;
}
或者:
// Using MYSQL_NUM
while ( $aRow = mysql_fetch_array( $rResult , MYSQL_NUM ) ) {
$aRow[3] = '2010-01-01';
$aRow[6] = 'edited';
$output['aaData'][] = $aRow;
}
如果您仍想坚持使用两者,则需要使用两个示例中的行:
// Using DEFAULT / MYSQL_BOTH
while ( $aRow = mysql_fetch_array( $rResult ) ) {
$aRow['date_time'] = '2010-01-01';
$aRow[3] = '2010-01-01';
$aRow['status'] = 'edited'; // Whatever key this column should be needs to be added instead of 'status'
$aRow[6] = 'edited';
$output['aaData'][] = $aRow;
}