Cakephp Set :: combine。转换数组

时间:2011-09-18 22:06:08

标签: php arrays cakephp

我必须将第一个数组转换为第二个数组, 以数组的形式(id => data)。 我在做

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

但它没有用。请告诉我这个或者应该怎么做错了。

数组1:

 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 个答案:

答案 0 :(得分:4)

由于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}' );