Postingan lainnya
Menggabungkan array dengan perulangan
Script
<?php
//akun
$akun1 = [1,2,3];
$akun2 = ['Sulawesi','Jawa','Jawa'];
$akun3 = [100,200,300];
$akun4 = [300,200,100];
//kelompok
$kelompok1 = ['1.1','1.2','2.1','3.1'];
$kelompok2 = ['Sulawesi Selatan','Sulawesi Barat','Jawa Timur','Jawa Barat'];
$kelompok3 = [30,40,50,60,70];
$kelompok4 = [70,60,50,40,30];
//jenis
$jenis1 = ['1.1.1','1.2.1','.2.1.1','2.1.2','3.1.1'];
$jenis2 = ['Makassar','Maros','Surabaya','Malang','Bandung'];
$jenis3 = [1,2,3,4,5];
$jenis4 = [5,4,3,2,1];
//gabung
$gabungArray = array (
array ($akun1[0],$akun2[0],$akun3[0],$akun4[0]),
array ($akun1[1],$akun2[1],$akun3[1],$akun4[1]),
array ($akun1[2],$akun2[2],$akun3[2],$akun4[2]),
array ($kelompok1[0],$kelompok2[0],$kelompok3[0],$kelompok4[0]),
array ($kelompok1[1],$kelompok2[1],$kelompok3[1],$kelompok4[1]),
array ($kelompok1[2],$kelompok2[2],$kelompok3[2],$kelompok4[2]),
array ($kelompok1[3],$kelompok2[3],$kelompok3[3],$kelompok4[3]),
array ($jenis1[0],$jenis2[0],$jenis3[0],$jenis4[0]),
array ($jenis1[1],$jenis2[1],$jenis3[1],$jenis4[1]),
array ($jenis1[2],$jenis2[2],$jenis3[2],$jenis4[2]),
array ($jenis1[3],$jenis2[3],$jenis3[3],$jenis4[3]),
array ($jenis1[4],$jenis2[4],$jenis3[4],$jenis4[4])
);
//cetak
for($baris=0;$baris<count($gabungArray);$baris++)
{
for($kolom=0;$kolom<count($gabungArray[$baris]);$kolom++)
{
echo $gabungArray[$baris][$kolom]." ";
}
echo "<br>";
}
?>
output:
1 Sulawesi 100 300 2 Jawa 200 200 3 Jawa 300 100 1.1 Sulawesi Selatan 30 70 1.2 Sulawesi Barat 40 60 2.1 Jawa Timur 50 50 3.1 Jawa Barat 60 40 1.1.1 Makassar 1 5 1.2.1 Maros 2 4 .2.1.1 Surabaya 3 3 2.1.2 Malang 4 2 3.1.1 Bandung 5 1
Saya menggabungkan array dengan cara seperti ini
$gabungArray = array (
array ($akun1[0],$akun2[0],$akun3[0],$akun4[0]),
array ($akun1[1],$akun2[1],$akun3[1],$akun4[1]),
array ($akun1[2],$akun2[2],$akun3[2],$akun4[2]),
array ($kelompok1[0],$kelompok2[0],$kelompok3[0],$kelompok4[0]),
array ($kelompok1[1],$kelompok2[1],$kelompok3[1],$kelompok4[1]),
array ($kelompok1[2],$kelompok2[2],$kelompok3[2],$kelompok4[2]),
array ($kelompok1[3],$kelompok2[3],$kelompok3[3],$kelompok4[3]),
array ($jenis1[0],$jenis2[0],$jenis3[0],$jenis4[0]),
array ($jenis1[1],$jenis2[1],$jenis3[1],$jenis4[1]),
array ($jenis1[2],$jenis2[2],$jenis3[2],$jenis4[2]),
array ($jenis1[3],$jenis2[3],$jenis3[3],$jenis4[3]),
array ($jenis1[4],$jenis2[4],$jenis3[4],$jenis4[4])
);
bagaimana menyingkat penulisan dengan perulangan sehingga bisa seperti ini
$gabungArray = array ( //looping
array ($akun1[$i],$akun2[$i],$akun3[$i],$akun4[$i]),
array ($kelompok1[$i],$kelompok2[$i],$kelompok3[$i],$kelompok4[$i]),
array ($jenis1[$i],$jenis2[$i],$jenis3[$i],$jenis4[$i])
//end looping
);
3 Jawaban:
Saya Asumsikan nilai dari masing2 array konsisten, tidak lebih dan kurang.
<pre> <?php /**
- Dummy array */ $akun1 = ['0 - akun1 ', '1 - akun1', '2 - akun1']; $akun2 = ['0 - akun2 ', '1 - akun2', '2 - akun2']; $akun3 = ['0 - akun3 ', '1 - akun3', '2 - akun3'];
function gabungArray(...$ArrayArgs){ // initial variable gabung dengan array kosong $gabung = []; // hitung jumlah array yang ada di masuka pada argument $i = count($ArrayArgs); // buat push array kosong ke dalam variable yg di deklarasikan sebelumnya, // untuk menginisialisasikan index yg nnti nya akan // diisi sesuai index nya while ($i > 0) { array_push($gabung,[]); $i--; } // loop array Argument foreach($ArrayArgs as $key=>$val){ // cek apakah argument bertype array if(is_array($ArrayArgs[$key])){ // looping masing2 array yang dimasukan kedalam argument foreach ($ArrayArgs[$key] as $key2 => $val) { // push ke dalam wrapper array, susuai key nya array_push($gabung[$key2], $val); } } } // return return $gabung; } var_dump(gabungArray($akun1,$akun2,$akun3)); /**
- Ouput
-
- array (size=3) |
- 0 => |
- array (size=3) |
-
0 =&gt; string '0 - akun1 ' (length=10) |
-
1 =&gt; string '0 - akun2 ' (length=10) |
-
2 =&gt; string '0 - akun3 ' (length=10) |
- 1 => |
- array (size=3) |
-
0 =&gt; string '1 - akun1' (length=9) |
-
1 =&gt; string '1 - akun2' (length=9) |
-
2 =&gt; string '1 - akun3' (length=9) |
- 2 => |
- array (size=3) |
-
0 =&gt; string '2 - akun1' (length=9) |
-
1 =&gt; string '2 - akun2' (length=9) |
-
2 =&gt; string '2 - akun3' (length=9) |
-
*/ </pre>
Script nya begini <pre> <?php //akun $akun1 = [1,2,3]; $akun2 = ['Sulawesi','Jawa','Jawa']; $akun3 = [100,200,300]; $akun4 = [300,200,100]; //kelompok $kelompok1 = ['1.1','1.2','2.1','3.1']; $kelompok2 = ['Sulawesi Selatan','Sulawesi Barat','Jawa Timur','Jawa Barat']; $kelompok3 = [30,40,50,60,70]; $kelompok4 = [70,60,50,40,30]; //jenis $jenis1 = ['1.1.1','1.2.1','.2.1.1','2.1.2','3.1.1']; $jenis2 = ['Makassar','Maros','Surabaya','Malang','Bandung']; $jenis3 = [1,2,3,4,5]; $jenis4 = [5,4,3,2,1]; //gabung $gabungArray = array ( array ($akun1[0],$akun2[0],$akun3[0],$akun4[0]), array ($akun1[1],$akun2[1],$akun3[1],$akun4[1]), array ($akun1[2],$akun2[2],$akun3[2],$akun4[2]), array ($kelompok1[0],$kelompok2[0],$kelompok3[0],$kelompok4[0]), array ($kelompok1[1],$kelompok2[1],$kelompok3[1],$kelompok4[1]), array ($kelompok1[2],$kelompok2[2],$kelompok3[2],$kelompok4[2]), array ($kelompok1[3],$kelompok2[3],$kelompok3[3],$kelompok4[3]), array ($jenis1[0],$jenis2[0],$jenis3[0],$jenis4[0]), array ($jenis1[1],$jenis2[1],$jenis3[1],$jenis4[1]), array ($jenis1[2],$jenis2[2],$jenis3[2],$jenis4[2]), array ($jenis1[3],$jenis2[3],$jenis3[3],$jenis4[3]), array ($jenis1[4],$jenis2[4],$jenis3[4],$jenis4[4]) ); //cetak for($baris=0;$baris<count($gabungArray);$baris++) { for($kolom=0;$kolom<count($gabungArray[$baris]);$kolom++) { echo $gabungArray[$baris][$kolom]." "; } echo "<br>"; }
?> </pre> output 1 Sulawesi 100 300 2 Jawa 200 200 3 Jawa 300 100 1.1 Sulawesi Selatan 30 70 1.2 Sulawesi Barat 40 60 2.1 Jawa Timur 50 50 3.1 Jawa Barat 60 40 1.1.1 Makassar 1 5 1.2.1 Maros 2 4 .2.1.1 Surabaya 3 3 2.1.2 Malang 4 2 3.1.1 Bandung 5 1
jadiin ke array multidimensi aja gan, ntar langsung di perulangan. lebih simple