Проблемы с array_push() при отправке массива в массив ⇐ Php
-
Anonymous
Проблемы с array_push() при отправке массива в массив
У меня есть данные, которые я хочу отсортировать.
{ "0": { "incoming_fluid_type": { "name": "input_fluid_type", "value": "Оральный (энтеральный)" }, "incoming_fluid_description": { "name": "incoming_liquid_description", «значение»: «немедленно» }, "amount_of_fluid_in": { "name": "incoming_liquid_amount", "значение": "28" } }, "1": { "incoming_fluid_type": { "name": "input_fluid_type", "value": "Инъекция" }, "incoming_fluid_description": { "name": "incoming_liquid_description", «значение»: «немедленно» }, "amount_of_fluid_in": { "name": "incoming_liquid_amount", "значение": "50" } }, "2": { "incoming_fluid_type": { "name": "input_fluid_type", "value": "Инъекция" }, "incoming_fluid_description": { "name": "incoming_liquid_description", "значение": "косвенный" }, "amount_of_fluid_in": { "name": "incoming_liquid_amount", "значение": "10" } } } Данные представляют собой строку и были объявлены в переменной $data['input_liquid_table']. Я хочу поместить все данные в объект, чтобы создать массив. Вот мой код.
$incoming_fluid_table = json_decode($data['incoming_fluid_table']); $fluid_type_in_master = [ 'Настой' => [], 'Инъекция' => [], 'Переливание' => [], 'Оральный (энтеральный)' => [] ]; foreach($table_fluid_entry AS $key2 => $value2){ $incoming_fluid_type = $value2->incoming_fluid_type->value; $ket_incoming_fluid = $value2->incoming_liquid_description->value; $сумма_входящей_флюид = $значение2->количество_входящей_флюид->значение; foreach($fluid_type_in_master AS $key3 => $value3){ если ($input_fluid_type == $key3){ array_push($value3, [$type_of_incoming_fluid, $type_of_fluid_in, $number_of_fluid_incoming]); } } }; var_dump($master_input_fluid_type); Приведенный выше код декодирует необработанные строковые данные объекта в реальный объект, чтобы их можно было зациклить. После этого я объявил массив для облегчения нужного формата сортировки ($Jenis_liquid_in_master). Проблема существует в array_push(), где он, похоже, не обновляет предоставленный массив, поэтому, когда я проверяю с помощью var_dump(), он возвращает пустое значение, например:
array(4) { ["Инъекция"]=> array(0) { } ["Инъекция"]=> array(0) { } ["Переливание"]=> array(0) { } ["Орально (Энтеральный)"]=> array(0) { } } array(4) { ["Вливание"]=> array(0) { } ["Инъекция"]=> array(0) { } ["Переливание"] => array(0) { } ["Оральный (энтеральный)"]=> array(0) { } } array(4) { ["Вливание"]=> array(0) { } ["Инъекция"]=> array(0) { } ["Трансфузия"]=> array(0) { } ["Оральный (энтеральный)"]=> array(0) { }
Почему это происходит и какое решение?
У меня есть данные, которые я хочу отсортировать.
{ "0": { "incoming_fluid_type": { "name": "input_fluid_type", "value": "Оральный (энтеральный)" }, "incoming_fluid_description": { "name": "incoming_liquid_description", «значение»: «немедленно» }, "amount_of_fluid_in": { "name": "incoming_liquid_amount", "значение": "28" } }, "1": { "incoming_fluid_type": { "name": "input_fluid_type", "value": "Инъекция" }, "incoming_fluid_description": { "name": "incoming_liquid_description", «значение»: «немедленно» }, "amount_of_fluid_in": { "name": "incoming_liquid_amount", "значение": "50" } }, "2": { "incoming_fluid_type": { "name": "input_fluid_type", "value": "Инъекция" }, "incoming_fluid_description": { "name": "incoming_liquid_description", "значение": "косвенный" }, "amount_of_fluid_in": { "name": "incoming_liquid_amount", "значение": "10" } } } Данные представляют собой строку и были объявлены в переменной $data['input_liquid_table']. Я хочу поместить все данные в объект, чтобы создать массив. Вот мой код.
$incoming_fluid_table = json_decode($data['incoming_fluid_table']); $fluid_type_in_master = [ 'Настой' => [], 'Инъекция' => [], 'Переливание' => [], 'Оральный (энтеральный)' => [] ]; foreach($table_fluid_entry AS $key2 => $value2){ $incoming_fluid_type = $value2->incoming_fluid_type->value; $ket_incoming_fluid = $value2->incoming_liquid_description->value; $сумма_входящей_флюид = $значение2->количество_входящей_флюид->значение; foreach($fluid_type_in_master AS $key3 => $value3){ если ($input_fluid_type == $key3){ array_push($value3, [$type_of_incoming_fluid, $type_of_fluid_in, $number_of_fluid_incoming]); } } }; var_dump($master_input_fluid_type); Приведенный выше код декодирует необработанные строковые данные объекта в реальный объект, чтобы их можно было зациклить. После этого я объявил массив для облегчения нужного формата сортировки ($Jenis_liquid_in_master). Проблема существует в array_push(), где он, похоже, не обновляет предоставленный массив, поэтому, когда я проверяю с помощью var_dump(), он возвращает пустое значение, например:
array(4) { ["Инъекция"]=> array(0) { } ["Инъекция"]=> array(0) { } ["Переливание"]=> array(0) { } ["Орально (Энтеральный)"]=> array(0) { } } array(4) { ["Вливание"]=> array(0) { } ["Инъекция"]=> array(0) { } ["Переливание"] => array(0) { } ["Оральный (энтеральный)"]=> array(0) { } } array(4) { ["Вливание"]=> array(0) { } ["Инъекция"]=> array(0) { } ["Трансфузия"]=> array(0) { } ["Оральный (энтеральный)"]=> array(0) { }
Почему это происходит и какое решение?
Мобильная версия