如何更改这个数组的键?

6 浏览
0 Comments

如何更改这个数组的键?

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

谢谢

0
0 Comments

问题的原因是原先使用的方法无法实现将数组的键名从"id"修改为"u_id"。解决方法是使用新的方法来实现这个功能。

在新的方法中,首先定义一个名为changeIDkey的函数,该函数接受两个参数$value和$key。如果$key的值为"id",则将$key的值修改为"u_id"。

然后创建一个空数组$new,并使用foreach循环遍历$input数组。在循环中,使用array_keys()函数获取$value的所有键名,并将获取到的键名数组传递给array_walk()函数,同时将changeIDkey函数作为回调函数。array_walk()函数会遍历键名数组,并将每个键名传递给回调函数changeIDkey来进行修改。

最后,使用array_combine()函数将修改后的键名和原先的键值进行重新组合,并将组合后的数组添加到$new数组中。

最后使用var_dump()函数验证$new数组的结果。

需要注意的是,这种方法只适用于当前数组的结构(二维数组),只会在第二个维度上修改键名。同时还需要注意,根据PHP手册中array_walk()函数的说明,只有数组的值可能会被改变,数组的结构不能被修改,即程序员不能添加、移除或重新排序元素。如果回调函数不遵守这个要求,该函数的行为是未定义的,不可预测的。

最后,某些情况下可以使用简单的array_walk()函数和循环体作为回调函数来实现相同的功能。

0
0 Comments

如何改变这个数组的键名?

问题的原因是,数组中的键名不符合需求,需要将键名改变为其他值。

解决方法是使用循环遍历数组,并对每个元素进行处理。可以使用foreach循环,通过引用方式操作数组元素。在循环中,将原来的键名赋值给新的键名,并删除原来的键名。

具体的代码实现如下:

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

0