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
。