Лучший способ преобразовать индексированный массив в двумерный массив в php - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь выяснить, как построить «нужный» массив из моего «текущего» массива.

Мой текущий массив является индексированным массивом, но каждое значение фактически является двумя значениями, разделенными |. В настоящее время я взрываю () каждое значение массива, чтобы получить два отдельных значения. Я хотел бы преобразовать текущий массив в двумерный массив, где 1-й массив индексируется, а вложенный массив является ассоциативным массивом.

Я пробовал несколько идей, но ни одна из них не работает. Любая помощь, чтобы преобразовать это программно, очень ценится.

Мой "текущий" массив

$appInfo = array("idNum1|dir/path1","idNum2|dir/path2","idNum3|dir/path3");

Мой "требуемый" массив

$apps = array(
  array("appID" => "$someVarAppID","appDir" => "$someVarAppPath"),
  array("appID" => "$someVarAppID","appDir" => "$someVarAppPath"),
  array("appID" => "$someVarAppID","appDir" => "$someVarAppPath"),
  array("appID" => "$someVarAppID","appDir" => "$someVarAppPath")
);

1 Ответ

1 голос
/ 30 сентября 2019

Примерно так будет работать:

$apps = array();
foreach ($appInfo as $app) {
    list($id, $path) = explode('|', $app);
    $apps[] = array('appId' => $id, 'appDir' => $path);
}

Вывод:

Array
(
    [0] => Array
        (
            [appId] => idNum1
            [appDir] => dir/path1
        )
    [1] => Array
        (
            [appId] => idNum2
            [appDir] => dir/path2
        )
    [2] => Array
        (
            [appId] => idNum3
            [appDir] => dir/path3
        )
)

Демонстрация на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...