重新格式化数组

时间:2011-07-28 10:23:49

标签: php cakephp

简而言之,我需要一种改变的方法:

Array
(
    [CrmOrder] => Array
        (
            [crm_schedule_id] => 59
        )

)

...进入此(使用PHP)....

Array
(
    [CrmOrder] => Array
        (
            [0] => Array
                (
                    [crm_schedule_id] => 59
                )
        )
)

我需要这样做的原因是因为我想将CakePHP saveAll()函数与我从Wizard Component获得的数组一起使用。 Cake的saveAll需要数据更深一层,因为CrmOrder属于CrmPerson,它有很多CrmOrder。

由于这不一定是Cake特定的问题,我也在这个问题中添加'php'标签。

4 个答案:

答案 0 :(得分:2)

$input  = array( /* your data */ );
$output = $input;
$output['CrmOrder'] = array($output['CrmOrder']);

答案 1 :(得分:2)

您应该能够利用FormHelper生成预期的输出,如下所示:

echo $this->Form->input('CrmOrder.0.crm_schedule_id');

(请注意点符号中的0。请参阅this page in the manual上的第二个代码块。)

答案 2 :(得分:1)

$newArray = array();
foreach( $oldArray as $key => $value ) {
    $newArray[ $key ] = array( $value );
}

答案 3 :(得分:0)

Demo

$data = array(
  'CrmOrder' => array(
    'crm_schedule_id' => 59,
  ),
);

$data = array_map(function($v){return array($v);}, $data);

var_dump($data);