php - 如何在 PHP 中更改数组结构

标签 php arrays object

我有一个如下形式的数组,

Array
(
    [0] => Array
        (
            [emailAddress] => abc@gmail.com
            [subject] => Hi
            [content] => How are you?
            [attachment] => QmFzZTY0IGlzIGFuIGVuY29kaW5nIHNjaGVtZSB1c2VkIHRvIHJlcHJlc2VudCBiaW5hcnkgZGF0YSBpbiBhbiBBU0NJSSBmb3JtYXQuIA==
            [fileName] => Base 64 Encoder
        )
)

我怎样才能用下面的形式得到它:

Array
(
    [emailAddress] => abc@gmail.com
    [subject] => Hi
    [content] => How are you?
    [attachments] => Array
        (
            [attachment] => QmFzZTY0IGlzIGFuIGVuY29kaW5nIHNjaGVtZSB1c2VkIHRvIHJlcHJlc2VudCBiaW5hcnkgZGF0YSBpbiBhbiBBU0NJSSBmb3JtYXQu
            [fileName] => Base 64 Encoder
        )

)

有没有办法将[attachments] => Array的类型转换为[attachments] => Object?如下所示:

Array
(
    [emailAddress] => abc@gmail.com
    [subject] => Hi
    [content] => How are you?
    [attachments] => Object
        (
            [attachment] => QmFzZTY0IGlzIGFuIGVuY29kaW5nIHNjaGVtZSB1c2VkIHRvIHJlcHJlc2VudCBiaW5hcnkgZGF0YSBpbiBhbiBBU0NJSSBmb3JtYXQu
            [fileName] => Base 64 Encoder
        )

)

我已经尝试查看许多方法(如 array_push、array_splice 等),但仍然无法找到。希望有人可以帮助我。谢谢。

最佳答案

试试这个

$result = array();
$result = $arr[0];
$result['attachments'] = new stdClass();
$result['attachments']->attachment = $result['attachment'];
$result['attachments']->fileName = $result['fileName'];
unset($result['attachment']);
print_r($result);

关于php - 如何在 PHP 中更改数组结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31825243/

相关文章:

android - 使用 Retrofit 获取 Json 数组

JavaScript对象操作: select properties according to specified condition

javascript - 从对象数组中提取属性并存储在另一个对象数组中

javascript - VideoJS 分辨率选择器在 Wordpress 中不起作用

php - 将变量参数列表传递给 sprintf()

php - PHP可以安全地使用unix时间戳来查询mysql数据库吗?

ios - 检查结构是否在数组中

php - "Warning: in_array() expects at most 3 parameters, 5 given"尝试上传文件时

python - 将数组列表转换为列表列表?

javascript - 将两个唯一对象推送到一个空数组会导致一个包含 2 个等效对象的数组