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'])代码>