Вы можете сделать это следующим образом:
$string = file_get_contents('ideb/NPWP.txt');
$mainjson = json_decode($string, TRUE);
//create an array to store the total values
$value_array = array();
//go over each item in the json
foreach ($mainjson['perusahaan']['fasilitas']['kreditPembiayan'] as $v) {
//if an item with same name has been found add this value to it
if(array_key_exists($v['ljkKet'], $value_array)){
$value_array[$v['ljkKet']] += $v['plafonAwal'];
}else{
//else creat a new element in the array with current value
$value_array[$v['ljkKet']] = $v['plafonAwal'];
}
}
// display the results
// for each item in value array
foreach($value_array as $key => $value){
// print the name and the value
echo $key.' = '.$value.'<br>';
}
По сути, создайте другой массив, который хранит значения и добавляет их по мере их обнаружения. затем go по массиву и выводим результаты. Я устал писать в комментариях, чтобы помочь вам понять это лучше. Если у вас есть какие-либо вопросы, дайте мне знать.
РЕДАКТИРОВАТЬ:
В ответ на ваши комментарии. Вы можете разделить функциональность на разные функции и затем вызывать их для разных значений. см. код ниже:
$string = file_get_contents('ideb/NPWP.txt');
$mainjson = json_decode($string, TRUE);
//setting main json path to branch_array, easyier to read.
$branch_array = $mainjson['perusahaan']['fasilitas']['kreditPembiayan'];
//sum the differnt values
//plafonAwal
$plafonAwal_array = sum_data($branch_array, 'plafonAwal');
//nilaiProyek
$nilaiProyek_array = sum_data($branch_array, 'nilaiProyek');
//jumlahHariTunggakan
$jumlahHariTunggakan_array = sum_data($branch_array, 'jumlahHariTunggakan');
//print the results
print_results($plafonAwal_array, 'plafonAwal');
echo '<br>';
print_results($nilaiProyek_array, 'nilaiProyek');
echo '<br>';
print_results($jumlahHariTunggakan_array, 'jumlahHariTunggakan');
// --- FUNCTIONS --- //
//add the values of specified key
function sum_data($data_array, $key_name){
$value_array =array();
foreach ($data_array as $v) {
if(array_key_exists($v['ljkKet'], $value_array)){
$value_array[$v['ljkKet']] += $v[$key_name];
}else{
$value_array[$v['ljkKet']] = $v[$key_name];
}
}
return $value_array;
}
//function prints results of sums with a custom heading
function print_results($result_array, $heading=''){
// if there is a heading print it out
if($heading!=''){
echo $heading.':<br>';
}
// display the results
// for each item in $result_array
foreach($result_array as $key => $value){
echo $key.' = '.$value.'<br>';
}
}
Я разделяю функциональность на 2 разные функции 1 добавляет значения, а другая выводит их на печать.
вывод выглядит примерно так:
plafonAwal:
BANK NATIONALNOBU = 35000000000
BCA = 30000000000
nilaiProyek:
BANK NATIONALNOBU = 35000000000
BCA = 30000000000
jumlahHariTunggakan:
BANK NATIONALNOBU = 0
BCA = 0
Сводная опция:
Если вы хотите, чтобы вы хотели получить список различных мест, вы можете использовать этот код:
$string = file_get_contents('ideb/NPWP.txt');
$mainjson = json_decode($string, TRUE);
//setting main json path to branch_array, easyier to read.
$branch_array = $mainjson['perusahaan']['fasilitas']['kreditPembiayan'];
//create the summary array
$summary_array = create_summary($branch_array);
//print the results
print_summary($summary_array);
// --- FUNCTIONS --- //
function create_summary($data_array){
$value_array = array();
foreach ($data_array as $v) {
//if haven't done a row for this loication set up a new array with defaults set to 0
if(!isset($value_array[$v['ljkKet']])){
$value_array[$v['ljkKet']] = array(
'plafonAwal'=> 0,
'nilaiProyek'=> 0,
'jumlahHariTunggakan'=> 0,
);
}
// add the values to existing values
$value_array[$v['ljkKet']]['plafonAwal'] += $v['plafonAwal'];
$value_array[$v['ljkKet']]['nilaiProyek'] += $v['nilaiProyek'];
$value_array[$v['ljkKet']]['jumlahHariTunggakan'] += $v['jumlahHariTunggakan'];
}
return $value_array;
}
function print_summary($summary_array){
foreach ($summary_array as $location => $data) {
echo "Summary for {$location}:<br>
plafonAwal: {$data['plafonAwal']}<br>
nilaiProyek: {$data['nilaiProyek']}<br>
jumlahHariTunggakan: {$data['jumlahHariTunggakan']} <br><br>
";
}
}
Пример вывод:
Summary for BANK NATIONALNOBU:
plafonAwal: 35000000000
nilaiProyek: 35000000000
jumlahHariTunggakan: 0
Summary for BCA:
plafonAwal: 30000000000
nilaiProyek: 30000000000
jumlahHariTunggakan: 0
Легко изменить форматирование резюме. Просто измените эхо в функции print_summary