Как удалить определённые слова из всех значений массива?
<?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 шт):
Если кому-то будет нужно. Нашел код для данного решения с заморочкой но работает
$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] =>
)
Возможно есть и другое более правильное и компактное решение, но я решил это так (в моем случаи эти удаленные значения не измены из файла в файл, а вот то что осталось да) и они мне и нужны для отображения (картинки, координат, здоровья и тд.)
Смею предположить, что на входе у вас 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;
)
А дальше можете пройтись циклом и обработать данные как нужно, если надо.