Это мой массив:
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
с пробелами с обеих сторон? Благодарю!!
Аргумент delimiter для explode()
не должен быть единственным символом, это может быть любая строка. Поэтому используйте x
с пробелами вокруг него в качестве разделителя.
list($size, $quantity) = explode(' x ', $s);
explode(" x ", $s);
должен сделать трюк. Или вы можете получить последний элемент массива взрывов.
explode(' x ', $s)