PHP – удалить n-ные данные из многомерного массива или json ⇐ Php
PHP – удалить n-ные данные из многомерного массива или json
Я использую PHP для извлечения данных из базы данных. Ответ представляет собой многомерный JSON, и мне нужно динамически удалить часть данных. Вот структура:
{ «успех»: правда, "данные": [ { «Имя»: «Джейн», "Идентификатор": "3473-45413-1657445", «Псевдоним»: «Доу», "УДИД": "654984-6548648-1651684", "КЛЮЧ": "ASD-456-GHJ", "параметры": [ { «Тип»: «К12», «Модель»: «53-ДДЛ», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль }, { «Тип»: «К11», «Модель»: «55-604», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль } ], «уровень»: 0, «Итого»: 55,5, «Член»: ноль, "LogTime": "2023-12-25 12:40:59", «ОП1»: «Джек», «ОП2»: «Дэнни», «ОП3»: «Пол», «Попытка»: 1, «Местоположение»: «Лос-Анджелес» }, { «Имя»: «Джейн», "Идентификатор": "3473-45413-1657445", «Псевдоним»: «Доу», "УДИД": "654984-6548648-1651684", "КЛЮЧ": "ASD-456-GHJ", "параметры": [ { «Тип»: «К12», «Модель»: «53-ДДЛ», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль }, { «Тип»: «К11», «Модель»: «55-604», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль } ], «уровень»: 0, «Итого»: 55,5, «Член»: ноль, "LogTime": "2023-12-25 12:40:59", «ОП1»: «Джек», «ОП2»: «Дэнни», «ОП3»: «Пол», «Попытка»: 1, «Местоположение»: «Лос-Анджелес» }, { «Имя»: «Джейн», "Идентификатор": "3473-45413-1657445", «Псевдоним»: «Доу», "УДИД": "654984-6548648-1651684", "КЛЮЧ": "ASD-456-GHJ", "параметры": [ { «Тип»: «К12», «Модель»: «53-ДДЛ», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль }, { «Тип»: «К11», «Модель»: «55-604», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль } ], «уровень»: 0, «Итого»: 55,5, «Член»: ноль, "LogTime": "2023-12-25 12:40:59", «ОП1»: «Джек», «ОП2»: «Дэнни», «ОП3»: «Пол», «Попытка»: 1, «Местоположение»: «Лос-Анджелес» } ], «код»: 0, "msg": "Успех", "счет": 3 } Мне нужно удалить каждую секунду данных[]. Что я пробовал и работал, так это декодировать JSON в массив и разделить data[] как новый массив, а затем отключить каждую его вторую часть, как показано ниже:
$new_arr = $data['data']; for ($i = 1; isset($new_arr[$i]); $i += 2){ unset($new_arr[$i]); } Затем соедините новый массив с остальными исходными данными JSON.
Однако мне интересно, есть ли более элегантный способ использовать меньше кода и делать это на лету. Что-то вроде:
$data['data'][$i],$i++,if $i%2 ==0, unset($data['data'][$i]) Я попробовал, но не помогло. Есть свет?
Я использую PHP для извлечения данных из базы данных. Ответ представляет собой многомерный JSON, и мне нужно динамически удалить часть данных. Вот структура:
{ «успех»: правда, "данные": [ { «Имя»: «Джейн», "Идентификатор": "3473-45413-1657445", «Псевдоним»: «Доу», "УДИД": "654984-6548648-1651684", "КЛЮЧ": "ASD-456-GHJ", "параметры": [ { «Тип»: «К12», «Модель»: «53-ДДЛ», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль }, { «Тип»: «К11», «Модель»: «55-604», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль } ], «уровень»: 0, «Итого»: 55,5, «Член»: ноль, "LogTime": "2023-12-25 12:40:59", «ОП1»: «Джек», «ОП2»: «Дэнни», «ОП3»: «Пол», «Попытка»: 1, «Местоположение»: «Лос-Анджелес» }, { «Имя»: «Джейн», "Идентификатор": "3473-45413-1657445", «Псевдоним»: «Доу», "УДИД": "654984-6548648-1651684", "КЛЮЧ": "ASD-456-GHJ", "параметры": [ { «Тип»: «К12», «Модель»: «53-ДДЛ», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль }, { «Тип»: «К11», «Модель»: «55-604», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль } ], «уровень»: 0, «Итого»: 55,5, «Член»: ноль, "LogTime": "2023-12-25 12:40:59", «ОП1»: «Джек», «ОП2»: «Дэнни», «ОП3»: «Пол», «Попытка»: 1, «Местоположение»: «Лос-Анджелес» }, { «Имя»: «Джейн», "Идентификатор": "3473-45413-1657445", «Псевдоним»: «Доу», "УДИД": "654984-6548648-1651684", "КЛЮЧ": "ASD-456-GHJ", "параметры": [ { «Тип»: «К12», «Модель»: «53-ДДЛ», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль }, { «Тип»: «К11», «Модель»: «55-604», «UnitCost»: 55,5, «КОЛИЧЕСТВО»: 1, «Сумма»: 55,5, «Спецификация»: ноль } ], «уровень»: 0, «Итого»: 55,5, «Член»: ноль, "LogTime": "2023-12-25 12:40:59", «ОП1»: «Джек», «ОП2»: «Дэнни», «ОП3»: «Пол», «Попытка»: 1, «Местоположение»: «Лос-Анджелес» } ], «код»: 0, "msg": "Успех", "счет": 3 } Мне нужно удалить каждую секунду данных[]. Что я пробовал и работал, так это декодировать JSON в массив и разделить data[] как новый массив, а затем отключить каждую его вторую часть, как показано ниже:
$new_arr = $data['data']; for ($i = 1; isset($new_arr[$i]); $i += 2){ unset($new_arr[$i]); } Затем соедините новый массив с остальными исходными данными JSON.
Однако мне интересно, есть ли более элегантный способ использовать меньше кода и делать это на лету. Что-то вроде:
$data['data'][$i],$i++,if $i%2 ==0, unset($data['data'][$i]) Я попробовал, но не помогло. Есть свет?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Удалить элементы из плоского массива, если они найдены в подмассиве многомерного массива.
Anonymous » » в форуме Php - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-