@Zorgios

Как превратить строку в двумерный массив?

Как превратить строку "x y z; x1 y1 z1; x2 y2 z2"
В двумерный массив:
([1], [2], [3]),
([4], [5], [6]),
([7],[8],[9])
Строки разделяются '; '
По символам строки делятся с помощью пробелов ' '
То что у меня есть, но не хочет работать корректно
<?php
$stroka  = "1 2 3; 4 5 6; 7 8 9";
$startMass = explode("; ", $stroka);
$rezMass = [];
foreach ($startMass as $value) {
    $tempMass = explode(" ", $value);
    array_push($rezMass, $tempMass);
    var_dump($rezMass) ;
}
var_dump($rezMass);
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
scottparker
@scottparker
попробуй вместоarray_push($rezMass, $tempMass);
написать$rezMass[] = $tempMass;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Mellorn
Можно обойтись менее многословно.
$str = '1 2 3; 4 5 6; 7 8 9';
$result = [];
foreach (explode('; ', $str) as $value) {
    $result[] = explode(' ', trim($value));
}
Ответ написан
hrabry
@hrabry
$str = '1 2 3; 4 5 6; 7 8 9';
$result = array_map(fn($value) => explode(' ', trim($value)), explode('; ', $str));

если пхп меньше 7.4 замени стрелочную функцию на обычную с return
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы