我有一个数组:
$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'
);
我怎么做?
答案 0 :(得分:2)
如果我理解正确,你想将数组中元素的键设置为第二个数组中元素的值,该数组本身就是顶部第一个键的值级别数组。此外,您希望从第二级数组中删除该元素。
顶级数组的键是否总是用相同的键更改为第二级的值?
那就是' 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]);
}