Foreach возвращает только одну строку - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть цикл foreach, но он возвращает только одну опцию в меню выбора.Vardump показывает несколько результатов.Чего мне не хватает?

$vars = explode(';', $this->settings['address']);

foreach ($vars as $row) {
    return array(
        'title' => $this->name,
        'options' => array(
            array(
                'id' => 'option_1',
                'icon' => $this->settings['icon'],
                'name' => 'Option 1',
                'description' =>'',
                'fields' => '<select name="address" class="form-control">' . PHP_EOL
                . '<option value="'.$row.'" >'.$row.'</option>' . PHP_EOL
                . '</select>' ,
                'cost' => $this->settings['fee'],
                'tax_class_id' => $this->settings['tax_class_id'],
                'exclude_cheapest' => false,
            ),
        ),
    });
}

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

попробуйте это

$vars = explode(';', $this->settings['address']);

$options = [];
foreach ($vars as $row) {
    $options[] = array(
        'id' => 'option_1',
        'icon' => $this->settings['icon'],
        'name' => 'Option 1',
        'description' =>'',
        'fields' => '<select name="address" class="form-control">' . PHP_EOL
            . '<option value="'.$row.'" >'.$row.'</option>' . PHP_EOL
            . '</select>' ,
        'cost' => $this->settings['fee'],
        'tax_class_id' => $this->settings['tax_class_id'],
        'exclude_cheapest' => false,
    );
}

return array(
    'title' => $this->name,
    'options' => $options
);

Или, может быть, это

$options = '';

foreach ($vars as $row) {
    $options .= '<option value="' . $row . '" >' . $row . '</option>' . PHP_EOL;
}

$fileds = '<select name="address" class="form-control">' . PHP_EOL . $options . '</select>';

return array(
    'title' => $this->name,
    'options' => array(
        array(
            'id' => 'option_1',
            'icon' => $this->settings['icon'],
            'name' => 'Option 1',
            'description' =>'',
            'fields' => $fileds,
            'cost' => $this->settings['fee'],
            'tax_class_id' => $this->settings['tax_class_id'],
            'exclude_cheapest' => false,
        ),
    ),
});
0 голосов
/ 19 декабря 2018
$vars = explode(';', $this->settings['address']);
$myReturn = array();
foreach ($vars as $row) {
    array_push($myReturn, array(
        'title' => $this->name,
        'options' => array(
            array(
                'id' => 'option_1',
                'icon' => $this->settings['icon'],
                'name' => 'Option 1',
                'description' =>'',
                'fields' => '<select name="address" class="form-control">' . PHP_EOL
                . '<option value="'.$row.'" >'.$row.'</option>' . PHP_EOL
                . '</select>' ,
                'cost' => $this->settings['fee'],
                'tax_class_id' => $this->settings['tax_class_id'],
                'exclude_cheapest' => false,
            ),
        ),
    ));
}
return $myReturn;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...