Как удалить определённые слова из всех значений массива?

<?php
session_start();
$file = "server/".$_SESSION['user']['id'].".txt";
if (file_exists($file)) {
    $arr = file($file, FILE_IGNORE_NEW_LINES);
    echo '<pre>';
    $arr = array_map('trim', $arr);
    print_r($arr);
    echo '</pre>';
} else {
    echo "Файл не найден?\n";
}
?>
<img src="img/dinos/<?= $arr['1'] ?>.webp" />

В моем случае выводится вот такой массиф из файла "server/".$_SESSION['user']['id'].".txt";

Array
(
    [0] => {
    [1] => "CharacterClass": "UtahAdultS",
    [2] => "DNA": "",
    [3] => "Location_",le_V3": "X=-389770.313 Y=110691.547 Z=-72876.539",
    [4] => "Rotation_Isle_V3": "P=0.000000 Y=149.460266 R=0.000000",
    [5] => "Growth": "1.0",
    [6] => "Hunger": "300",
    [7] => "UnlockedCharacters": "UtahAdultS;",
    [8] => }
)

Как удалить пробелы в начале и конце строк я разобрался $arr = array_map('trim', $arr);, но вот задача такова что результат нужен такой

Array
(
    [0] => 
    [1] => UtahAdultS
    [2] => 
    [3] => X=-389770.313 Y=110691.547 Z=-72876.539
    [4] => P=0.000000 Y=149.460266 R=0.000000
    [5] => 1.0
    [6] => 300
    [7] => UtahAdultS
    [8] => 
)

Подскажите как это реализовать.


Ответы (2 шт):

Автор решения: alex

Если кому-то будет нужно. Нашел код для данного решения с заморочкой но работает

    $arr = array_map('trim', $arr);
    $arr = str_replace('CharacterClass','', $arr);
    $arr = str_replace('DNA','', $arr);
    $arr = str_replace('Location_le_V3','', $arr);
    $arr = str_replace('Rotation_Isle_V3','', $arr);
    $arr = str_replace('Growth','', $arr);
    $arr = str_replace('Hunger','', $arr);
    $arr = str_replace('UnlockedCharacters','', $arr);
    $arr = str_replace('"','', $arr);
    $arr = str_replace(',','', $arr);
    $arr = str_replace('{','', $arr);
    $arr = str_replace('}','', $arr);
    $arr = str_replace(';','', $arr);
    $arr = str_replace(':','', $arr);
    $arr = array_map('trim', $arr);

В итоге получил нужное мне отображение массива

Array
(
    [0] => 
    [1] => UtahAdultS
    [2] => 
    [3] => X=-389770.313 Y=110691.547 Z=-72876.539
    [4] => P=0.000000 Y=149.460266 R=0.000000
    [5] => 1.0
    [6] => 300
    [7] => UtahAdultS
    [8] => 
)

Возможно есть и другое более правильное и компактное решение, но я решил это так (в моем случаи эти удаленные значения не измены из файла в файл, а вот то что осталось да) и они мне и нужны для отображения (картинки, координат, здоровья и тд.)

→ Ссылка
Автор решения: Alexander Semikashev

Смею предположить, что на входе у вас json. Читаем про json_decode.

$json = '
    {
      "CharacterClass": "UtahAdultS",
      "DNA": "",
      "Location_\",le_V3": "X=-389770.313 Y=110691.547 Z=-72876.539",
      "Rotation_Isle_V3": "P=0.000000 Y=149.460266 R=0.000000",
      "Growth": "1.0",
      "Hunger": "300",
      "UnlockedCharacters": "UtahAdultS;"
    }
';

// декодирует строку json и приводим к массиву
// не забываем добавить обработчик ошибок
$jsonDecoded = json_decode($json, true);

// получаем только значения
$result = array_values($jsonDecoded);

В итоге у вас получится

Array
(
    [0] => UtahAdultS
    [1] => 
    [2] => X=-389770.313 Y=110691.547 Z=-72876.539
    [3] => P=0.000000 Y=149.460266 R=0.000000
    [4] => 1.0
    [5] => 300
    [6] => UtahAdultS;
)

А дальше можете пройтись циклом и обработать данные как нужно, если надо.

→ Ссылка