Как вы знаете, первым шагом было бы поместить строку в переменную, чтобы иметь возможность играть с ней.Затем вы разбили бы строку на «Комната», но я продолжу этот пример, как если бы у каждого $ spec было 2 комнаты.
//need the string in a variable ....
$specs = "Room: Bedroom Length: 5.00 Width: 5.00 Area: 25.00 Room: Bathroom Length: 3.00 Width: 3.00 Area: 9.00";
//Explode your string on space caracter:
$specs_exploded = explode(" ", $specs);
// Then, call the following function to build your array:
$specs_array = build_specs($specs_exploded);
// Function that builds and returns specs_array.
function build_specs(Array $specs){
$spec_array = array();
$spec_array[] = array("room" => $specs[1],
"length" => $specs[3],
"width" => $specs[5],
// you could also set the key programmaticaly...
// the following woud give you "Area" => 25.00
$specs[6] => $specs[7],
);
// Second room
$spec_array[] = array("room" => $specs[9],
// etc...
);
return $spec_array;
}
Обратите внимание, что функция примера обрабатывает исключительно 2 комнаты.Это могло бы быть лучше, если бы у вас была одна функция, которая разбивает строку на «комнаты» и возвращает массив комнат, с помощью strpos ().
Передайте возвращенный массив комнаты в версиюПриведенный выше пример функции, которая обрабатывает только одну комнату за раз.
Надеюсь, этого достаточно, чтобы заставить вас двигаться, удачи!