Использование foreach внутри определенного массива PHP

#php

#php

Вопрос:

Есть ли какой-либо способ перебирать массив и вставлять каждый экземпляр в другой массив?

    $aFormData = array(
        'x_show_form' => 'PAYMENT_FORM',
        foreach($aCartInfo['items'] as $item){
            'x_line_item' => $item['id'].'<|>'.$item['title'].'<|>'.$item['description'].'<|>'.$item['quantity'].'<|>'.$item['price'].'<|>N',
        }

    );
  

Ответ №1:

Не непосредственно в объявлении массива, но вы могли бы сделать следующее:

 $aFormData = array(
    'x_show_form' => 'PAYMENT_FORM',
    'x_line_item' => array(),
);
foreach($aCartInfo['items'] as $item){
    $aFormData['x_line_item'][] = $item['id'].'<|>'.$item['title'].'<|>'.$item['description'].'<|>'.$item['quantity'].'<|>'.$item['price'].'<|>N';
}
  

Ответ №2:

Да, есть способ; но вы должны выполнить два шага :

  • Сначала создайте свой массив со статическими данными
  • А затем динамически добавлять дополнительные данные

В вашем случае, я полагаю, вы бы использовали что-то вроде этого :

 $aFormData = array(
   'x_show_form' => 'PAYMENT_FORM',
   'x_line_item' => array(),  // right now, initialize this item to an empty array
);

foreach($aCartInfo['items'] as $item){
    // Add the dynamic value based on the current item
    // at the end of $aFormData['x_line_item']
    $aFormData['x_line_item'][] = $item['id'] . '<|>' . $item['title'] . '<|>' . $item['description'] . '<|>' . $item['quantity'] . '<|>' . $item['price'] . '<|>N';
}
  

И, конечно, вам следует прочитать раздел руководства, посвященный массивам : это, вероятно, вам очень поможет 😉

Ответ №3:

Вы имеете в виду что-то вроде этого :

 $aFormData = array(
    'x_show_form' => 'PAYMENT_FORM',
    'x_line_item' => array(),
);

foreach($aCartInfo['items'] as $item) {
     $aFormData['x_line_item'][] = implode('<|>', $aCartInfo['items']).'<|>N',
}