Cakephp Set :: объединить. Преобразование массива - PullRequest
0 голосов
/ 19 сентября 2011

Мне нужно преобразовать первый массив во второй, в виде массива (id => data).Я делаю

Set::combine($array, '{n}.{n}.id', '{n}.{n}');

Но это не работает. Пожалуйста, скажите мне, что не так в этом или как это должно быть сделано.

Array1:

 Array
    (
        [0] => Array
            (
               [0] => Array
                    (
                        [id] => 1
                        [user_id] => 1
                        [group_id] => 7
                        [comment] => Comment 1.
                    )
               [1] => Array
                (
                    [id] => 3
                    [user_id] => 4
                    [group_id] => 8
                    [comment] => Comment 4
                )

        )

Array2:

Array(
                   [1] => Array
                        (
                            [id] => 1
                            [user_id] => 1
                            [group_id] => 7
                            [comment] => Comment 1.
                        )
                   [3] => Array
                    (
                        [id] => 3
                        [user_id] => 4
                        [group_id] => 8
                        [comment] => Comment 4
                    )
        )

1 Ответ

4 голосов
/ 19 сентября 2011

Поскольку Set::combine() интенсивно использует Set::extract(), я не верю, что сейчас можно использовать более одного числового измерения без некоторых обходных путей.

Set::combine( $array[0], '{n}.id', '{n}' ); будет работать.

Используйте следующее, если у вас есть несколько измерений для циклического перехода:

$combined = array();
foreach ( $array as $val) {
  $combined = array_merge( $combined, $val );
}
$combined = Set::combine( $combined, '{n}.id', '{n}' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...