我有如下数组:
array(
'session_id' => 'ea29e7ae5c976794896b4c256f455dd5',
'user_identifier' => "{'user_id':87,'username':'some username','email':'someuseremail.com','first_name':'Some','last_name':'User','company':'Company'}",
'request_uri' => '/'
);
我想将其转换为以下内容:
array(
'session_id' => 'ea29e7ae5c976794896b4c256f455dd5',
'user_id' => 87,
'username' => 'some username',
'email' => 'someuseremail.com',
'first_name' => 'Some',
'last_name' => 'User',
'company' => 'Company',
'request_uri' => '/'
);
这意味着我正在解码JSON
user_identifier
key和我正在制作初始阵列的一部分
$original
然后我移除
user\u标识符
钥匙
到目前为止,我所做的就是:
foreach ($original as $key => $log) {
$original[$key] = (array) $log;
}
foreach ($original as $key => $log) {
foreach($log as $k => $v) {
if ($k === 'user_identifier') {
$original['decoded'] = (array) json_decode($v);
}
}
}
这给了我一个这样的数组:
array(
'session_id' => 'ea29e7ae5c976794896b4c256f455dd5',
'request_uri' => '/',
'user_identifier' => "{'user_id':87,'username':'some username','email':'someuseremail.com','first_name':'Some','last_name':'User','company':'Company'}",
'decoded' => array(
'user_id' => 87,
'username' => 'some username',
'email' => 'someuseremail.com',
'first_name' => 'Some',
'last_name' => 'User',
'company' => 'Company'
)
);
您可能会注意到,这甚至不是我正在寻找的阵列,我已经有了一个
foreach
循环以将初始结果转换为数组-它以和的形式出现
stdClass
对象-然后是嵌套
foreach公司
循环解码JSON并尝试使其成为初始数组的一部分。
在这种情况下,我需要添加另一个循环来线性化阵列。我关心的是这个数组只是一个示例,但我需要转换的数组是一个很大的数组。
有没有更好的方法来实现这一点?
我正在使用PHP 5.3.3