#php #json
#php #json
Вопрос:
Пожалуйста, кто-нибудь может мне помочь в этом, чтобы удалить все ключи, которые имеют значения N / A, — или пустые строки. Если одно из значений отображается в массиве, удалите этот единственный элемент из массива
{
"name": {
"first": "Robert",
"middle": "",
"last": "Smith"
},
"age": 25,
"DOB": "-",
"hobbies": [
"running",
"coding",
"-"
],
"education": {
"highschool": "N/A",
"college": "Yale"
}
}
Ожидаемый результат будет:
{
«name»: {
«first»: «Robert»,
«last»: «Smith»
},
«возраст»: 25,
«хобби»: [
«бег»,
«кодирование»
],
«образование»: {
«highschool»: «N / A»,
«college»: «Yale»
}
}
Комментарии:
1. Используйте рекурсивную функцию, которая перебирает свойства и удаляет любое свойство с одним из этих значений.
2. Привет @Barmar спасибо за комментарий. Можете ли вы закодировать это для меня? Спасибо
Ответ №1:
Вы можете использовать следующую логику для удаления элементов из ваших исходных данных:
Рекурсивная функция cleanUp()
циклически перебирает данные и удаляет все записи со значениями, заданными в массиве $remove
$arr = json_decode($json, true);
$remove = ['N/A', '-','',];
cleanUp($arr, $remove);
function cleanUp(array amp;$arr, array $remove = [])
{
foreach($arr as $key => amp;$value) {
if(is_array($value)) {
cleanUp($value, $remove);
} else {
if(in_array($value, $remove)) unset($arr[$key]);
}
}
}
рабочая демонстрация
Комментарии:
1. рад, что смог помочь!