Переформатирование массива - PullRequest
1 голос
/ 28 июля 2011

Короче, мне нужен способ изменить:

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 ]

2 голосов
/ 28 июля 2011

Вы должны иметь возможность использовать FormHelper для получения намеченного результата, например, так:

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

(Обратите внимание на 0 в точечной нотации. См. Второй блок кода на этой странице винструкция .)

2 голосов
/ 28 июля 2011
$input  = array( /* your data */ );
$output = $input;
$output['CrmOrder'] = array($output['CrmOrder']);
1 голос
/ 28 июля 2011
$newArray = array();
foreach( $oldArray as $key => $value ) {
    $newArray[ $key ] = array( $value );
}
0 голосов
/ 28 июля 2011

Демо

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

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

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