PHP массив взорвать чарс

1

Это мой массив:

array:4 [
  0 => "Family Deluxe for 4 Person x 1"
  1 => "Studio Deluxe for 2 Person x 1"
  2 => "Additional Adult x 2"
  3 => "Additional Children x 2"
]

Когда я перехожу в цикл foreach чтобы удалить x и получить счет, я получаю следующий результат:

array:4 [
  0 => array:1 [
    "Family Delu" => "e for 4 Person "
  ]
  1 => array:1 [
    "Studio Delu" => "e for 2 Person "
  ]
  2 => array:1 [
    " Additional Adult " => " 2"
  ]
  3 => array:1 [
    " Additional Children" => " 2"
  ]
]

Проблемы состоят в том, что в строке Deluxe есть x char, поэтому цикл запутывается, с чего начать explode(). Следующим был мой код для foreach:

foreach($a as $s) {
            list($size, $quantity) = explode('x', $s);
            $data[] = array($size => $quantity);
            $sumVariant += $quantity;
        }

Как я могу получить explode() чтобы распознать x с пробелами с обеих сторон? Благодарю!!

  • 1
    Поместите пробелы вокруг: explode(' x ', $s)
Теги:
arrays

2 ответа

1
Лучший ответ

Аргумент delimiter для explode() не должен быть единственным символом, это может быть любая строка. Поэтому используйте x с пробелами вокруг него в качестве разделителя.

list($size, $quantity) = explode(' x ', $s);
  • 0
    Спасибо человек, такая простая вещь.
1

explode(" x ", $s); должен сделать трюк. Или вы можете получить последний элемент массива взрывов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню