PHP切换数组的两个键

我有一个数组:

$array['text6'] = array(
    'elem2' => 'text2',
    'elem3' => 'text3',
    'elem4' => 'text4',
    'elem5' => 'text5'
    'elem6' => 'text6'
);

我想以这种方式更改,例如text6键与其他键:

$name_key = 'elem4';

// something action here
// and final array:

    $array['text4'] = array(
        'elem2' => 'text2',
        'elem3' => 'text3',
        'elem5' => 'text5'
        'elem6' => 'text6'
    );

我怎么能这样做?我有105个数组,我需要以相同的方式更改每个数组,所以当数组看起来:

$array['text6'] = array(
    'elem2' => 'text2',
    'elem3' => 'text3',
    'elem4' => 'text4',
    'elem5' => 'text5'
    'elem6' => 'text6'
);

$array['othertext6'] = array(
    'elem2' => 'othertext2',
    'elem3' => 'othertext3',
    'elem4' => 'othertext4',
    'elem5' => 'othertext5'
    'elem6' => 'othertext6'
);

我想用第三个键更改主键(键 – >>’elem4′),它应该在每个数组中生成(不同的beetwen数组只在值中,键总是相同的):

$name_key = 'elem4';

// action...

$array['text4'] = array(
    'elem2' => 'text2',
    'elem3' => 'text3',
    'elem5' => 'text5'
    'elem6' => 'text6'
);

$array['othertext4'] = array(
    'elem2' => 'othertext2',
    'elem3' => 'othertext3',
    'elem5' => 'othertext5'
    'elem6' => 'othertext6'
);

我怎么能这样做?

最佳答案 如果我理解正确,您希望将数组中元素的键设置为第二个数组中元素的值,该数组本身就是顶级数组中第一个键的值.此外,您要从第二级数组中删除该元素.

顶级数组的键是否总是用相同的键更改为第二级的值?

也就是说,’elem4’总是成为顶级数组关键值的关键吗?

如果是这样,你可以这样做:

首先将所有数组放入一个大数组中,以便循环遍历它们.

$list = array($array['text4'], $array['text5'], ... (all your other arrays here));

然后,

$name_key = 'elem4';
foreach ($list as $k => $v) {
   $new_key =  $v[$name_key];
   unset ($v[$name_key]);
   $list[$new_key] = $v;
   unset ($list[$k]);
}
点赞