[0] => {"butapid":"50","name":"Output CST 2% ( with C form)","description":"","value":"2.00000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-03-31 11:36:52","updated_ts":"2018-01-12 20:10:08","butapatid":"1","butapappid":"1","alid":"199","gbutapid":"2","gbusupid":"6","butaprid":"1","tax_type":"2","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null}
[1] => {"butapid":"51","name":"Output Vat 5.5%","description":"f","value":"5.50000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-04-06 18:55:04","updated_ts":"2018-01-13 16:18:13","butapatid":"1","butapappid":"1","alid":"139","gbutapid":"1","gbusupid":"4","butaprid":"1","tax_type":"1","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null}
[2] => {"butapid":"57","name":"Output Service Tax 15%","description":"","value":"15.00000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-04-12 13:46:29","updated_ts":"2018-03-29 18:29:56","butapatid":"1","butapappid":"1","alid":"177","gbutapid":"3","gbusupid":"8","butaprid":"3","tax_type":"1","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null}
в конце каждого массива я хочу вставить как «sub» => 1 или «sub» => 0
[0] => {"butapid":"50","name":"Output CST 2% ( with C form)","description":"","value":"2.00000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-03-31 11:36:52","updated_ts":"2018-01-12 20:10:08","butapatid":"1","butapappid":"1","alid":"199","gbutapid":"2","gbusupid":"6","butaprid":"1","tax_type":"2","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null,"sub"=>1}
[1] => {"butapid":"51","name":"Output Vat 5.5%","description":"f","value":"5.50000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-04-06 18:55:04","updated_ts":"2018-01-13 16:18:13","butapatid":"1","butapappid":"1","alid":"139","gbutapid":"1","gbusupid":"4","butaprid":"1","tax_type":"1","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null,"sub"=>1}
[2] => {"butapid":"57","name":"Output Service Tax 15%","description":"","value":"15.00000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-04-12 13:46:29","updated_ts":"2018-03-29 18:29:56","butapatid":"1","butapappid":"1","alid":"177","gbutapid":"3","gbusupid":"8","butaprid":"3","tax_type":"1","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null,"sub"=>0}
if ($all_taxes)
{
foreach ($all_taxes as $tax)
{
$t = new BusinessTaxProfile($tax->getId());
$tax_array[] = strval($t);
$subprofile = BusinessTaxSubProfileManager::getBusinessSubProfiles($tax->getId(), 1);
}
}
Если $ subprofile не пуст, то «sub» => 1, иначе «sub» => 0.
Я пробовал толкать массив, но он создал другой массив.






Это может выглядеть примерно так:
if ($all_taxes)
{
foreach ($all_taxes as $tax)
{
$t = new BusinessTaxProfile($tax->getId());
$subprofile = BusinessTaxSubProfileManager::getBusinessSubProfiles($tax->getId(), 1);
$t->sub = (int)!empty($subprofile);
$tax_array[] = (string)$t;
}
}
Но вам нужно отредактировать метод BusinessTaxProfile__toString() также, потому что я думаю, что он генерирует вывод json.
Покажи BusinessTaxProfile, и я отредактирую свой ответ по размеру.
Вы можете сделать это, используя ссылку в foreach
$array = array(array("butapid"=>"50","name"=>"Output CST 2% ( with C form)","description"=>"","value"=>"2.00000000","butapsid"=>"1","butaptid"=>"1","created_uid"=>"1","updated_uid"=>"1","created_ts"=>"2017-03-31 11:36:52","updated_ts"=>"2018-01-12 20:10:08","butapatid"=>"1","butapappid"=>"1","alid"=>"199","gbutapid"=>"2","gbusupid"=>"6","butaprid"=>"1","tax_type"=>"2","company_id"=>"1","global_business_sub_profile"=>null,"businessTaxProfileType"=>null,"businessTaxProfileAmountType"=>null,"global_business_tax_profile"=>null),
array("butapid"=>"51","name"=>"Output Vat 5.5%","description"=>"f","value"=>"5.50000000","butapsid"=>"1","butaptid"=>"1","created_uid"=>"1","updated_uid"=>"1","created_ts"=>"2017-04-06 18:55:04","updated_ts"=>"2018-01-13 16:18:13","butapatid"=>"1","butapappid"=>"1","alid"=>"139","gbutapid"=>"1","gbusupid"=>"4","butaprid"=>"1","tax_type"=>"1","company_id"=>"1","global_business_sub_profile"=>null,"businessTaxProfileType"=>null,"businessTaxProfileAmountType"=>null,"global_business_tax_profile"=>null),
array("butapid"=>"57","name"=>"Output Service Tax 15%","description"=>"","value"=>"15.00000000","butapsid"=>"1","butaptid"=>"1","created_uid"=>"1","updated_uid"=>"1","created_ts"=>"2017-04-12 13:46:29","updated_ts"=>"2018-03-29 18:29:56","butapatid"=>"1","butapappid"=>"1","alid"=>"177","gbutapid"=>"3","gbusupid"=>"8","butaprid"=>"3","tax_type"=>"1","company_id"=>"1","global_business_sub_profile"=>null,"businessTaxProfileType"=>null,"businessTaxProfileAmountType"=>null,"global_business_tax_profile"=>null)
);
foreach ($array as $key => &$value) {
// ^^ it will allow you to manipulate same array
$subprofile = true; // change this with your code
if ($subprofile) {
$value['sub'] = 1;
} else {
$value['sub'] = 0;
}
}
echo "<pre>";
print_r($array); // it will have "sub" key added in respective array
Причина, по которой отправка массива не работает, заключается в том, что содержимое $all_taxes является объектами в кодировке JSON. Итак, чтобы добавить к ним, вам нужно сначала их декодировать, затем обновить значение, а затем перекодировать их как JSON. Вы можете сделать это в своем цикле следующим образом:
foreach ($all_taxes as &$tax)
{
$t = new BusinessTaxProfile($tax->getId());
$tax_array[] = strval($t);
$subprofile = BusinessTaxSubProfileManager::getBusinessSubProfiles($tax->getId(), 1);
$dtax = json_decode($tax);
$dtax->sub = empty($subprofile) ? 0 : 1;
$tax = json_encode($dtax);
}
Обратите внимание, что вам нужно изменить foreach на foreach ($all_taxes as &$tax), чтобы вы могли изменить значение элемента массива в цикле.
Со случайными значениями для $subprofile это дает на выходе:
Array
(
[0] => {"butapid":"50","name":"Output CST 2% ( with C form)","description":"","value":"2.00000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-03-31 11:36:52","updated_ts":"2018-01-12 20:10:08","butapatid":"1","butapappid":"1","alid":"199","gbutapid":"2","gbusupid":"6","butaprid":"1","tax_type":"2","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null,"sub":1}
[1] => {"butapid":"51","name":"Output Vat 5.5%","description":"f","value":"5.50000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-04-06 18:55:04","updated_ts":"2018-01-13 16:18:13","butapatid":"1","butapappid":"1","alid":"139","gbutapid":"1","gbusupid":"4","butaprid":"1","tax_type":"1","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null,"sub":0}
[2] => {"butapid":"57","name":"Output Service Tax 15%","description":"","value":"15.00000000","butapsid":"1","butaptid":"1","created_uid":"1","updated_uid":"1","created_ts":"2017-04-12 13:46:29","updated_ts":"2018-03-29 18:29:56","butapatid":"1","butapappid":"1","alid":"177","gbutapid":"3","gbusupid":"8","butaprid":"3","tax_type":"1","company_id":"1","global_business_sub_profile":null,"businessTaxProfileType":null,"businessTaxProfileAmountType":null,"global_business_tax_profile":null,"sub":1}
)
Как же вы идете?
$all_taxes- это массив в вашем первом поле кода?