PHP按键更改数组

时间:2013-05-19 13:47:31

标签: php

以下简单的代码我想在数组提取中将[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
)

1 个答案:

答案 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;

}