Php 我能';t更改多维数组的键并分解其值

Php 我能';t更改多维数组的键并分解其值,php,multidimensional-array,key,explode,Php,Multidimensional Array,Key,Explode,我有一个数组: Array ( [0] => Array ( [0] => Array ( [creator] => a, b ) [1] => Array ( [creator] => c, d ) ) [1] => Array ( [0] => Array ( [creator] => e, f ) ) [2] => Array ( [0] => Array ( [creator] => g, h ) [1] => Ar

我有一个数组:

Array ( [0] => Array ( [0] => Array ( [creator] => a, b ) [1] => Array ( [creator] => c, d ) ) [1] => Array ( [0] => Array ( [creator] => e, f ) ) [2] => Array ( [0] => Array ( [creator] => g, h ) [1] => Array ( [creator] => i, j ) [2] => Array ( [creator] => k, l ) [3] => Array ( [creator] => m, n ) [4] => Array ( [creator] => o, p ) ) ) 
我想将其所有键的名称从
[creator]
更改为
[author]
,并且必须将其项分解为
[first]
[last]

因此,所需的输出应为:

Array ( [0] => Array ( [0] => Array ( [author] => [first] => a [last] => b ) [1] => Array ( [author] => [first] => c [last] => d ) ) [1] => Array ( [0] => Array ( [author] => [first] => e [last] => f ) ) [2] => Array ( [0] => Array ( [author] => [first] => g [last] => h ) [1] => Array ( [author] => [first] => i [last] => j ) [2] => Array ( [author] => [first] => k [last] => l ) [3] => Array ( [author] => [first] => m [last] => n ) [4] => Array ( [author] => [first] => o [last] => p ) ) ) 
我试过:

for($loop=0; $loop<sizeof($output); $loop++) {
     $authors[] = $output[$loop]['creators'];
}
$a123 = explode(', ', $authors);
foreach ($authors as $items) {
    foreach ($items as $k => $v) {
        $myarray[$k]['author'] = $v;
    }
}
($loop=0;$loop$v)的
{
$myarray[$k]['author']=$v;
}
}

感谢

一种方法是迭代数组中的每个项,分解
创建者
值,使用该数据创建新的
作者
值,然后使用
取消设置()
删除旧的
创建者

foreach($array AS $a => $b)
{
    foreach($b AS $c => $d)
    {
        $name = explode(', ', $d['creator']);
        $array[$a][$c]['author'] = array(
            'first' => $name[0],
            'last' => $name[1]
        );
        unset($array[$a][$c]['creator']);
    }
}

代码未经测试,但应该能说明问题。

为了获得所需的数组,您尝试了什么,请添加有问题的代码。@KaushaMehta抱歉,刚刚更新了帖子谢谢您的快速回答,数组格式正常。唯一的问题是explode没有正常工作。代码的输出:$name=explode($d['creator'],',');应该拆分第一个姓氏,但它的输出是:Array([0]=>),有什么想法吗?@KA-抱歉,这是一个愚蠢的错误-explode参数的顺序错误。应该是
$name=explode(',',$d['creator'])