如何将php对象数组从一种形式转换为另一种形式

他们

有没有一种简单的方法可以从中转换对象数组

stdClass Object
(
    [Title] => Array
        (
            [0] => Title 1
            [1] => Title 2
            [2] => Title 3
            [3] => Title 4
        )

    [description] => Array
        (
            [0] => Description 1
            [1] => Description 2
            [2] => Description 3
            [3] => Description 4
        )

    [myimage] => Array
        (
            [0] => images/events/568a7048f22f9/sizes/athens-img_XS.jpg
            [1] => images/collections/56b2294894c08/islamiki.png
            [2] => images/multimedia/item6.jpg
            [3] => 
        )

)

对此:

stdClass Object
(

    [0] => Array
        (
            [Title] => Title 1
            [description] => Description 1
            [myimage] => images/events/568a7048f22f9/sizes/athens-img_XS.jpg
        )

    [1] => Array
        (
            [Title] => Title 2
            [description] => Description 2
            [myimage] => images/collections/56b2294894c08/islamiki.png
        )

    [2] => Array
        (
            [Title] => Title 3
            [description] => Description 3
            [myimage] => images/multimedia/item6.jpg
        )

    [3] => Array
        (
            [Title] => Title 4
            [description] => Description 4
            [myimage] => 

        )
)
瑞安·文森特(Ryan Vincent)

这是有趣的...

转置“ 2d矩阵”-列成行。(意识到它做到了-我写了几个月后)

  • 每个输出条目都包含一个关联的数组:

  • 关键是属性名称

  • 数据是该属性的“当前列数据”

评估时的示范

使用该函数的演示:

1)原始数据-调用函数.... Eval.in

现在,只要数据是一致的,关于属性数和每个属性的数据行数:

您可以更改数据而不必更改代码。

每个条目有两个额外的属性,三个额外的条目有... Eval.in

代码:

// ---------------------------------------------------------------------------
// output in here...
$outArray = array();                         // (step 0)

$propsAsArray = get_object_vars($srcObject);  // (step 1) properties as an array

$rowKeys = array_keys($propsAsArray);         // (step 2) we need the the key names

for ($i = 0, $itemCount = count(current($propsAsArray)); $i < $itemCount; $i++) { // (step 3)

    $column = array_column($propsAsArray, $i); // (step 4) get one vertical column through al the arrays

    $entry = array_combine($rowKeys, $column); // (step 5)

    $outArray[] = $entry;                      // (step 6) 
}

$outArray = (object) $outArray;               // (step 7)

作为功​​能:

function convertArray($srcObject) {
    $propsAsArray = get_object_vars($srcObject);  
    $rowKeys = array_keys($propsAsArray);         

    for ($i = 0, $itemCount = count(current($propsAsArray)); $i < $itemCount; $i++) { 

        $outArray[] = array_combine($rowKeys, 
                                    array_column($propsAsArray, $i)); 
    }

    return (object) $outArray;              
}

输出:

stdClass Object
(
    [0] => Array
        (
            [Title] => Title 1
            [description] => Description 1
            [myimage] => images/events/568a7048f22f9/sizes/athens-img_XS.jpg
        )

    [1] => Array
        (
            [Title] => Title 2
            [description] => Description 2
            [myimage] => images/collections/56b2294894c08/islamiki.png
        )

    [2] => Array
        (
            [Title] => Title 3
            [description] => Description 3
            [myimage] => images/multimedia/item6.jpg
        )

    [3] => Array
        (
            [Title] => Title 4
            [description] => Description 4
            [myimage] => 
        )
)

步骤说明。

我只会评论更多involved ones

步骤1:

我们需要将属性名称和数据数组作为associated array,并将属性名称作为“键”和相关数据。

这只是一个二维数组,其中“键”是原始属性名称,数据是与该属性关联的值的数组。

第2步:

获取“每个输出条目的属性名称”。这些是from中数组的键step 1

可以有任意多个。

第三步:

这是工作开始的地方...

我们将介绍vertical slices“ 2D数组”。那是什么array_column

我们需要知道columns实际有多少数据。但是,它是一个associated array,我们不知道键名。

没问题:

“当前函数”返回的当前条目的值。2D array然后对它进行计数并存储它。

我这样做是initialization part of 'for' loop为了提高效率。

第4步:

我们需要得到vertical slicecurrent column ($i)通过2D array

步骤5:

我们现在有:

  • 条目的键列表($ rowKeys)
  • 一个数据数组,其中每个条目都与相应的“属性”匹配

因此,输入该条目并将其添加到输出中。

步骤7:

将数组转换回一个stdClass对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将javascript对象从一种形式转换为另一种形式

来自分类Dev

将关联数组从一种形式转换为另一种形式

来自分类Dev

将 JSON 数组数据的一种形式转换为另一种形式?

来自分类Dev

如何将数组格式从一种多维形式更改为另一种形式?

来自分类Dev

Windows Form Application如何将返回值从一种形式转换为另一种形式

来自分类Dev

Rails-如何将值从一个模型转换为另一种模型形式

来自分类Dev

将我的HTML从一种形式转换为另一种形式

来自分类Dev

将我的HTML从一种形式转换为另一种形式

来自分类Dev

如何将变量从一种 qt 形式传递到另一种形式的 qt 形式?

来自分类Dev

如何将嵌套对象从一种类型转换为另一种类型

来自分类Dev

如何将UI从一种形式更新为另一种形式

来自分类Dev

如何将值从一种形式传递到另一种形式的动态创建的控件

来自分类Dev

如何将数据从一种形式放入另一种形式的列表框中

来自分类Dev

提交时如何将值从一种形式传递到另一种形式?

来自分类Dev

我如何将公共变量从一种形式传递到另一种形式

来自分类Dev

如何将文本从一种形式同步到另一种形式?

来自分类Dev

如何将一种类型的对象数组转换为另一种类型?

来自分类Dev

使用PHP如何将这个字符串变量转换为另一种形式?

来自分类Dev

在Shell中如何将字符串从一种形式替换为另一种形式

来自分类Dev

如何将数据从一种形式传递到另一种套件脚本

来自分类Dev

在C#中使用变量从一种形式转换为另一种形式

来自分类Dev

如何将PPA用户从一种PPA转换为另一种PPA?

来自分类Dev

如何将PPA用户从一种PPA转换为另一种PPA?

来自分类Dev

如何将int值从一种方法转换为另一种方法

来自分类Dev

如何将音频文件从一种格式转换为另一种格式?

来自分类Dev

如何将 XML 输入从一种格式转换为另一种格式

来自分类Dev

如何将日期从一种文化转换为另一种文化?

来自分类Dev

将信息从一种形式传递到另一种形式?

来自分类Dev

将DateTime格式从一种形式更改为另一种形式

Related 相关文章

  1. 1

    将javascript对象从一种形式转换为另一种形式

  2. 2

    将关联数组从一种形式转换为另一种形式

  3. 3

    将 JSON 数组数据的一种形式转换为另一种形式?

  4. 4

    如何将数组格式从一种多维形式更改为另一种形式?

  5. 5

    Windows Form Application如何将返回值从一种形式转换为另一种形式

  6. 6

    Rails-如何将值从一个模型转换为另一种模型形式

  7. 7

    将我的HTML从一种形式转换为另一种形式

  8. 8

    将我的HTML从一种形式转换为另一种形式

  9. 9

    如何将变量从一种 qt 形式传递到另一种形式的 qt 形式?

  10. 10

    如何将嵌套对象从一种类型转换为另一种类型

  11. 11

    如何将UI从一种形式更新为另一种形式

  12. 12

    如何将值从一种形式传递到另一种形式的动态创建的控件

  13. 13

    如何将数据从一种形式放入另一种形式的列表框中

  14. 14

    提交时如何将值从一种形式传递到另一种形式?

  15. 15

    我如何将公共变量从一种形式传递到另一种形式

  16. 16

    如何将文本从一种形式同步到另一种形式?

  17. 17

    如何将一种类型的对象数组转换为另一种类型?

  18. 18

    使用PHP如何将这个字符串变量转换为另一种形式?

  19. 19

    在Shell中如何将字符串从一种形式替换为另一种形式

  20. 20

    如何将数据从一种形式传递到另一种套件脚本

  21. 21

    在C#中使用变量从一种形式转换为另一种形式

  22. 22

    如何将PPA用户从一种PPA转换为另一种PPA?

  23. 23

    如何将PPA用户从一种PPA转换为另一种PPA?

  24. 24

    如何将int值从一种方法转换为另一种方法

  25. 25

    如何将音频文件从一种格式转换为另一种格式?

  26. 26

    如何将 XML 输入从一种格式转换为另一种格式

  27. 27

    如何将日期从一种文化转换为另一种文化?

  28. 28

    将信息从一种形式传递到另一种形式?

  29. 29

    将DateTime格式从一种形式更改为另一种形式

热门标签

归档