Php 在多维数组中重命名数组键?

Php 在多维数组中重命名数组键?,php,multidimensional-array,Php,Multidimensional Array,这就是我得到的 $shop = array( array( first_name => "john", last_name => "doe" )); foreach($shop as $key => $value) { foreach($value as $key2 => $value2) { $shop[$key][$key2] =

这就是我得到的

 $shop = array( array( first_name => "john", 
                      last_name => "doe"
                    ));         
 foreach($shop as $key => $value) {
    foreach($value as $key2 => $value2) {
            $shop[$key][$key2] = $shop[$key]['newname'];
            unset($shop[$key][$key2]);
        }}

print_r($shop);
哪个输出

Array ( [0] => Array ( ) )

更改周围的赋值行(第6行)并使
newname
动态。比如:

...foreach ($value as $key2 => $value2) {
    $newname = 'new_' . $key2;
    $shop[$key][$newname] = $shop[$key][$key2];
    unset($shop[$key][$key2]);
}...

'newname'
之前缺少
[
。很抱歉,这是发布问题的一个问题,它本来就在那里,同样的问题也在那里,您的赋值行是向后的。赋值从右到左:您当前正在将一个不存在的值赋值给一个预先存在的键。@您是指
$shop[$key][$key2]=$shop[$key]['newname'];
line?@Hmm这种方法很有效,但是它从数组中删除了'first_name'元素,现在它输出
array([0]=>array([newname]=>doe))
这可能是因为你不能让两个元素具有相同的键名吗?嘿,如果你不介意再帮我一步,你能把下面的代码发布到中,看看为什么我的值会被删除,我真的很感激。
$profileinfo=array(array)(first_name=>“john”,last_name=>“doe”);foreach($key=>$value){foreach($key2=>$value2){$newname=str_replace(“,”,$key2);$newname=ucwords($newname);$profileinfo[$key][$newname]=$shop[$key][$key2];unset($profileinfo[$key][$key2])}print\r($profileinfo);
@JonahKatz replace
$shop[$key][$key2]
$value2
一起使用。我没有费心研究它为什么会这样做,但它应该与
$value2
一起使用。编辑:我现在知道为什么了。你使用了
$shop[$key][$key2]
即使你的数组被称为
$profileinfo