如何更改此数组的数组键?

时间:2011-08-24 19:22:31

标签: php arrays

  

可能重复:
  In PHP, how do you change the key of an array element?

这个数组

Array
(
    [0] => Array
        (
            [id] => 1
            [due_date] => 2011-09-23
            [due_amount] => 10600.00
        )

    [1] => Array
        (
            [id] => 2
            [due_date] => 2011-10-23
            [due_amount] => 10600.00
        )

    [2] => Array
        (
            [id] => 3
            [due_date] => 2011-11-23
            [due_amount] => 10600.00
        )
)

如何在此数组中将 id 更改为 u_id

此致

2 个答案:

答案 0 :(得分:6)

array_walk_recursive($array, 'changeIDkey');

function changeIDkey($item, &$key)
{
    if ($key == 'id') $key = 'u_id';
}

PHP手册:array_walk_recursive

修改

这不适用@salathe在下面的评论中给出的原因。致力于替代方案。

实际答案

function changeIDkey(&$value,$key)
{
    if ($value === "id") $value = "u_id";
}

$new = array();
foreach ($array as $key => $value)
{
    $keys = array_keys($value);
    array_walk($keys,"changeIDkey");
    $new[] = array_combine($keys,array_values($value));
}

var_dump($new); //verify

$array是您的输入数组。请注意,这仅适用于您当前的数组结构(二维,仅在第二维上更改键)。

循环遍历内部数组,将键中的“id”更改为“u_id”,然后将旧键重新组合为旧值。

答案 1 :(得分:4)

foreach( $array as &$element ) {
    $element['u_id'] = $element['id'];
    unset( $element['id'] );
}