3v4l.org

run code in 300+ PHP versions simultaneously
<?php function isEmptyArray($item) { if (is_array($item)) { return array_filter($item, 'isEmptyArray'); } if (!empty($item) || $item === "0") { return true; } return false; } function removeEmptyArrays($array) { $filteredArray = array_filter($array, 'isEmptyArray'); return $filteredArray; } function isMultiDimensional($array) { if(is_array($array)) { foreach ($array as $key=>$value){ if(is_array($value)){ return true; } } } return false; } //$string = 'rest_call=create_acct_complete_m&acct[acct_row][billing_group][billing_group_row][0][billing_group_name]='; $string ='rest_call=create_acct_complete_m&cat=core-api&client_no=100&auth_key=stEKy9vvN9mKEPTeAdNkfeuUE5CGHknB&do_write=&client_receipt_id=&acct[acct_row][acct]=123&acct[acct_row][client_acct_id]=&acct[acct_row][userid]=&acct[acct_row][status_cd]=&acct[acct_row][notify_method]=&acct[acct_row][password]=&acct[acct_row][secret_question]=&acct[acct_row][secret_question_answer]=&acct[acct_row][first_name]=&acct[acct_row][mi]=&acct[acct_row][last_name]=&acct[acct_row][company_name]=&acct[acct_row][address1]=&acct[acct_row][address2]=&acct[acct_row][address3]=&acct[acct_row][city]=&acct[acct_row][locality]=&acct[acct_row][state_prov]=&acct[acct_row][country]=US&acct[acct_row][postal_cd]=&acct[acct_row][phone]=&acct[acct_row][phone_ext]=&acct[acct_row][cell_phone]=&acct[acct_row][work_phone]=&acct[acct_row][work_phone_ext]=&acct[acct_row][fax]=&acct[acct_row][email]=&acct[acct_row][birthdate]=&acct[acct_row][senior_acct_userid]=&acct[acct_row][client_senior_acct_id]=&acct[acct_row][senior_acct_no]=&acct[acct_row][invoicing_option]=&acct[acct_row][alt_start_date]=&acct[acct_row][alt_bill_day]=&acct[acct_row][retroactive_start_date]=&acct[acct_row][functional_acct_group][functional_acct_group_row][0][client_functional_acct_group_id]=&acct[acct_row][functional_acct_group][functional_acct_group_row][0][functional_acct_group_no]=&acct[acct_row][collection_acct_group][collection_acct_group_row][0][client_collections_acct_group_id]=&acct[acct_row][collection_acct_group][collection_acct_group_row][0][collections_acct_group_no]=&acct[acct_row][supp_field][supp_field_row][0][supp_field_name]=&acct[acct_row][supp_field][supp_field_row][0][supp_field_value]=&acct[acct_row][test_acct_ind]=&acct[acct_row][acct_start_date]=&acct[acct_row][acct_currency]=&acct[acct_row][client_seq_func_group_id]=&acct[acct_row][seq_func_group_no]=&acct[acct_row][taxpayer_id]=&acct[acct_row][tax_exemption_level]=&acct[acct_row][list_start_master_file]=&acct[acct_row][client_alt_msg_template_id]=&acct[acct_row][alt_msg_template_no]=&acct[acct_row][client_cn_alt_msg_template_id]=&acct[acct_row][cn_alt_msg_template_no]=&acct[acct_row][invoice_approval_required]=&acct[acct_row][create_session]=&acct[acct_row][acct_surcharges][acct_surcharges_row][0][acct_surcharge_no]=&acct[acct_row][acct_surcharges][acct_surcharges_row][0][acct_rate_schedule_no]=&acct[acct_row][coupon_codes][coupon_codes_row][0][coupon_codes]=&acct[acct_row][payment_method][payment_method_row][0][pay_method_type]=&acct[acct_row][payment_method][payment_method_row][0][pay_method_name]=&acct[acct_row][payment_method][payment_method_row][0][pay_method_description]=&acct[acct_row][payment_method][payment_method_row][0][client_pay_method_cdid]=&acct[acct_row][payment_method][payment_method_row][0][payment_method_idx]=&acct[acct_row][payment_method][payment_method_row][0][first_name]=&acct[acct_row][payment_method][payment_method_row][0][mi]=&acct[acct_row][payment_method][payment_method_row][0][last_name]=&acct[acct_row][payment_method][payment_method_row][0][company_name]=&acct[acct_row][payment_method][payment_method_row][0][address1]=&acct[acct_row][payment_method][payment_method_row][0][address2]=&acct[acct_row][payment_method][payment_method_row][0][address3]=&acct[acct_row][payment_method][payment_method_row][0][city]=&acct[acct_row][payment_method][payment_method_row][0][locality]=&acct[acct_row][payment_method][payment_method_row][0][state_prov]=&acct[acct_row][payment_method][payment_method_row][0][country]=&acct[acct_row][payment_method][payment_method_row][0][postal_cd]=&acct[acct_row][payment_method][payment_method_row][0][phone]=&acct[acct_row][payment_method][payment_method_row][0][phone_ext]=&acct[acct_row][payment_method][payment_method_row][0][cell_phone]=&acct[acct_row][payment_method][payment_method_row][0][work_phone]=&acct[acct_row][payment_method][payment_method_row][0][work_phone_ext]=&acct[acct_row][payment_method][payment_method_row][0][fax]=&acct[acct_row][payment_method][payment_method_row][0][email]=&acct[acct_row][payment_method][payment_method_row][0][birthdate]=&acct[acct_row][payment_method][payment_method_row][0][cc_num]=&acct[acct_row][payment_method][payment_method_row][0][cc_expire_mm]=&acct[acct_row][payment_method][payment_method_row][0][cc_expire_yyyy]=&acct[acct_row][payment_method][payment_method_row][0][bank_acct_num]=&acct[acct_row][payment_method][payment_method_row][0][bank_routing_no]=&acct[acct_row][payment_method][payment_method_row][0][cvv]=&acct[acct_row][payment_method][payment_method_row][0][track_data1]=&acct[acct_row][payment_method][payment_method_row][0][track_data2]=&acct[acct_row][payment_method][payment_method_row][0][taxpayer_id]=&acct[acct_row][payment_method][payment_method_row][0][bill_agreement_id]=&acct[acct_row][payment_method][payment_method_row][0][iban]=&acct[acct_row][payment_method][payment_method_row][0][bank_check_digit]=&acct[acct_row][payment_method][payment_method_row][0][bank_swift_cd]=&acct[acct_row][payment_method][payment_method_row][0][bank_country_cd]=&acct[acct_row][payment_method][payment_method_row][0][mandate_id]=&acct[acct_row][payment_method][payment_method_row][0][bank_id_cd]=&acct[acct_row][payment_method][payment_method_row][0][bank_branch_cd]=&acct[acct_row][payment_method][payment_method_row][0][cc_id]=&acct[acct_row][billing_group][billing_group_row][0][billing_group_name]=&acct[acct_row][billing_group][billing_group_row][0][billing_group_description]=&acct[acct_row][billing_group][billing_group_row][0][client_billing_group_id]=&acct[acct_row][billing_group][billing_group_row][0][billing_group_idx]=&acct[acct_row][billing_group][billing_group_row][0][notify_method]=&acct[acct_row][billing_group][billing_group_row][0][notify_template_group]=&acct[acct_row][billing_group][billing_group_row][0][statement_template]=&acct[acct_row][billing_group][billing_group_row][0][credit_note_template]=&acct[acct_row][billing_group][billing_group_row][0][primary_payment_method_idx]=&acct[acct_row][billing_group][billing_group_row][0][primary_client_payment_method_id]=&acct[acct_row][billing_group][billing_group_row][0][backup_payment_method_idx]=&acct[acct_row][billing_group][billing_group_row][0][backup_client_payment_method_id]=&acct[acct_row][billing_group][billing_group_row][0][first_name]=&acct[acct_row][billing_group][billing_group_row][0][mi]=&acct[acct_row][billing_group][billing_group_row][0][last_name]=&acct[acct_row][billing_group][billing_group_row][0][company_name]=&acct[acct_row][billing_group][billing_group_row][0][address1]=&acct[acct_row][billing_group][billing_group_row][0][address2]=&acct[acct_row][billing_group][billing_group_row][0][address3]=&acct[acct_row][billing_group][billing_group_row][0][city]=&acct[acct_row][billing_group][billing_group_row][0][locality]=&acct[acct_row][billing_group][billing_group_row][0][state_prov]=&acct[acct_row][billing_group][billing_group_row][0][country]=&acct[acct_row][billing_group][billing_group_row][0][postal_cd]=&acct[acct_row][billing_group][billing_group_row][0][phone]=&acct[acct_row][billing_group][billing_group_row][0][phone_ext]=&acct[acct_row][billing_group][billing_group_row][0][cell_phone]=&acct[acct_row][billing_group][billing_group_row][0][work_phone]=&acct[acct_row][billing_group][billing_group_row][0][work_phone_ext]=&acct[acct_row][billing_group][billing_group_row][0][fax]=&acct[acct_row][billing_group][billing_group_row][0][email]=&acct[acct_row][billing_group][billing_group_row][0][birthdate]=&acct[acct_row][billing_group][billing_group_row][0][list_start_master_file]=0&acct[acct_row][dunning_group][dunning_group_row][0][dunning_group_name]=&acct[acct_row][dunning_group][dunning_group_row][0][dunning_group_description]=&acct[acct_row][dunning_group][dunning_group_row][0][client_dunning_group_id]=&acct[acct_row][dunning_group][dunning_group_row][0][dunning_group_idx]=&acct[acct_row][dunning_group][dunning_group_row][0][client_dunning_process_id]=&acct[acct_row][dunning_group][dunning_group_row][0][dunning_process_no]=&acct[acct_row][contracts][contracts_row][0][client_contract_id]=&acct[acct_row][contracts][contracts_row][0][contract_type_no]=&acct[acct_row][contracts][contracts_row][0][contract_length_months]=&acct[acct_row][contracts][contracts_row][0][contract_cancel_fee]=&acct[acct_row][contracts][contracts_row][0][contract_comments]=&acct[acct_row][contracts][contracts_row][0][contract_start_date]=&acct[acct_row][contracts][contracts_row][0][contract_end_date]=&acct[acct_row][contracts][contracts_row][0][contract_plans][contract_plans_row][0][client_plan_instance_id]=&acct[acct_row][contracts][contracts_row][0][contract_plans][contract_plans_row][0][plan_instance_idx]=&acct[acct_row][contracts][contracts_row][0][contract_plans][contract_plans_row][0][cascade_action]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][client_plan_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_description]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][client_plan_instance_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_idx]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][promo_cd]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_units]=1&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][client_plan_unit_inst_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][client_service_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][service_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][service_fulfillment_date]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][fulfillment_directive]=1&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_inst_fields][plan_unit_inst_fields_row][0][field_name]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_inst_fields][plan_unit_inst_fields_row][0][field_value]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_inst_fields][plan_unit_inst_fields_row][0][plan_unit_inst_directive]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_status]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][resp_level_cd]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][client_resp_master_plan_inst_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][resp_master_plan_inst_idx]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][client_billing_group_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][billing_group_idx]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][resp_master_plan_inst_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][dunning_group_idx]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][client_dunning_group_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][status_until_alt_start]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][balance_forward]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][coupon_codes][coupon_codes_row][0][coupon_codes]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][mpi_surcharges][mpi_surcharges_row][0][mpi_surcharge_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][mpi_surcharges][mpi_surcharges_row][0][mpi_rate_schedule_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][nso_bill_immediately]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][master_plan_nso_list][master_plan_nso_list_row][0][client_sku]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][master_plan_nso_list][master_plan_nso_list_row][0][item_units]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][nso_po_num]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_fields_info][plan_instance_fields_info_row][0][field_name]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_fields_info][plan_instance_fields_info_row][0][field_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][plan_instance_fields_info][plan_instance_fields_info_row][0][field_value]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][client_alt_rate_schedule_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][alt_rate_schedule_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][usage_accumulation_reset_months]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][usage_pooling]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][usage_threshold_applicability]=UT&acct[acct_row][master_plans_detail][master_plans_detail_row][0][custom_rates][custom_rates_row][0][custom_rate_client_service_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][custom_rates][custom_rates_row][0][custom_rate_service_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][custom_rates][custom_rates_row][0][custom_rate_seq_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][custom_rates][custom_rates_row][0][custom_rate_from_unit]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][custom_rates][custom_rates_row][0][custom_rate_to_unit]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][custom_rates][custom_rates_row][0][custom_rate_per_unit]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][po_num]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][supp_plan]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][client_plan_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_instance_description]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][client_plan_instance_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_instance_idx]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_instance_units]=1&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][client_plan_unit_inst_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][client_service_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][service_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][service_fulfillment_date]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_instance_services][plan_unit_instance_services_row][0][fulfillment_directive]=1&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_inst_fields][plan_unit_inst_fields_row][0][field_name]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_inst_fields][plan_unit_inst_fields_row][0][field_value]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_unit_instances][plan_unit_instances_row][0][plan_unit_inst_fields][plan_unit_inst_fields_row][0][plan_unit_inst_directive]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][supp_plan_nso_list][supp_plan_nso_list_row][0][client_sku]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][supp_plan_nso_list][supp_plan_nso_list_row][0][item_units]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_instance_fields_info][plan_instance_fields_info_row][0][field_name]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_instance_fields_info][plan_instance_fields_info_row][0][field_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][plan_instance_fields_info][plan_instance_fields_info_row][0][field_value]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][client_alt_rate_schedule_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][alt_rate_schedule_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][usage_accumulation_reset_months]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][usage_pooling]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][usage_threshold_applicability]=UT&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][custom_rates][custom_rates_row][0][custom_rate_client_service_id]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][custom_rates][custom_rates_row][0][custom_rate_service_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][custom_rates][custom_rates_row][0][custom_rate_seq_no]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][custom_rates][custom_rates_row][0][custom_rate_from_unit]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][custom_rates][custom_rates_row][0][custom_rate_to_unit]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][custom_rates][custom_rates_row][0][custom_rate_per_unit]=&acct[acct_row][master_plans_detail][master_plans_detail_row][0][supp_plan][supp_plan_row][0][po_num]=&acct[acct_row][consumer_acct_ind]=&acct[acct_row][client_revrec_id]=&acct[acct_row][revrec_profile_no]=&acct[acct_row][po_num]=&application_id=&application_date=&environment_url=1'; $cat = 'admintools-api'; parse_str($string, $output); $method = $output['rest_call']; $options = array(); $apiLiveOptions = array(); foreach ($output AS $key => $value) { if (is_array($value)) { if (!empty($value[$key])) { $options[$key] = $value; $apiLiveOptions[$key] = $value; } else { $array = array(); $apiLiveArray = array(); foreach ($value as $k => $v) { if(!empty($v[$k])) { $array[] = $value[$k]; $apiLiveArray[] = $value[$k]; $options[$key] = $array; } else { $newArray = array_filter($v, 'isEmptyArray'); $apiLiveArray[$k] = $newArray; foreach($newArray as $row => $column) { if(is_array($column)) { foreach($column as $r=>$c) { $c = array_filter($c, 'isEmptyArray'); if($cat=='admintools-api' || $method=='create_acct_complete_m') { if(isMultiDimensional($c) || (array_keys($c)[0] != $row.'s' ) ){ $options[$key][$k][$row][$r]=$c; } else { $options[$key][$k][$row][$r]=array_values($c)[0]; } } else { $options[$row][$r]=$c; } } } else { (is_array($column) ? $column = array_filter($column, 'isEmptyArray') : ''); if($cat=='admintools-api' || $method=='create_acct_complete_m') { $key == $row ? $options[$key][$k] = $column : $options[$key][$k][$row] = $column; } else { $options[$row][$k] = $column; } } } } } $apiLiveOptions[$key] = $apiLiveArray; } } else { $options[$key] = $value; $apiLiveOptions[$key] = $value; } }; var_dump($options);

preferences:
39.47 ms | 402 KiB | 5 Q