如何在php中的数组的每个数组元素中放置不同的对象?

时间:2013-12-19 03:08:06

标签: php

我有两个数组,例如

$mainArray = array('a','b','c','d','e','f','g');

$ subArray =它包含一个对象数组,例如

array( objec1, objec2, object3, object4) ...

在每个对象中,保存与其中一个键匹配的值 $ mainArray。

我现在的问题是,我将如何匹配并将正确的对象放到mainArray中,以便这样做 它应该是这样的,例如

$mainArray = array('a'=> array(object3,object2), 'b' => array(object4,object1));

2 个答案:

答案 0 :(得分:2)

$result = array();
foreach ($subArray as $obj) {
    if (!isset($result[$obj->keyOfMainArray])) {
        $result[$obj->keyOfMainArray] = array();
    }

    $result[$obj->keyOfMainArray][] = $obj;
}

答案 1 :(得分:1)

假设val是您的object属性

$mainArray = array('a','b','c','d','e','f','g');
$subArray  = array(...);
$result    = array();

foreach($subArray as $object) {
    $result[$object->val][] = $object;
}

示例结果

Array
(
    [a] => Array
        (
            [0] => stdClass Object
                (
                    [val] => a
                )

            [1] => stdClass Object
                (
                    [val] => a
                )

        )

    [b] => Array
        (
            [0] => stdClass Object
                (
                    [val] => b
                )

        )

)