Перемещение элементов массива - PullRequest
0 голосов
/ 09 сентября 2009

Вот мой массив:

[2555] => Array
        (
            [0] => stdClass Object
                (
                    [meta_id] => 1246
                    [post_id] => 2555
                    [meta_key] => event_date
                    [meta_value] => Sept 24th - 29th
                )

            [1] => stdClass Object
                (
                    [meta_id] => 1245
                    [post_id] => 2555
                    [meta_key] => _edit_last
                    [meta_value] => 1
                )

            [2] => stdClass Object
                (
                    [meta_id] => 1244
                    [post_id] => 2555
                    [meta_key] => _edit_lock
                    [meta_value] => 1252519100
                )

            [3] => stdClass Object
                (
                    [meta_id] => 1251
                    [post_id] => 2555
                    [meta_key] => articleimg
                    [meta_value] => /image1.jpg
                )

        )

    [2038] => Array
        (
            [0] => stdClass Object
                (
                    [meta_id] => 462
                    [post_id] => 2038
                    [meta_key] => articleimg
                    [meta_value] => /image2.jpg
                )

            [1] => stdClass Object
                (
                    [meta_id] => 463
                    [post_id] => 2038
                    [meta_key] => _edit_lock
                    [meta_value] => 1251846014
                )

            [2] => stdClass Object
                (
                    [meta_id] => 464
                    [post_id] => 2038
                    [meta_key] => _edit_last
                    [meta_value] => 1
                )

            [3] => stdClass Object
                (
                    [meta_id] => 467
                    [post_id] => 2038
                    [meta_key] => event_date
                    [meta_value] => Sept 15
                )

        )

Я пытаюсь получить это в массив, который выглядит следующим образом:

[2555] (
    [event_date] => Sept 24th - 29th
    [articleimg] => /image1.jpg
)

 etc...

Я написал несколько неприятных foreach и для петель, и моя голова плавает. Я упускаю простой способ сделать это?

1 Ответ

2 голосов
/ 09 сентября 2009

Попробуйте что-то вроде этого:

foreach ($array as $key => $objs) {
    $tmp = array();
    foreach ($objs as $obj) {
        if ($obj->meta_key[0] !== '_') {
            $tmp[$obj->meta_key] = $obj->meta_value;
        }
    }
    $array[$key] = $tmp;
}

Это сгладит массив объектов в массив пар ключ / значение со значением meta_key объекта в качестве ключа и значением meta_value объекта в качестве значения, если meta_key значение не начинается с _.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...