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
);

avatar ambangku
@ambangku

9 Kontribusi 0 Poin

Diperbarui 4 tahun yang lalu

3 Jawaban:

Saya Asumsikan nilai dari masing2 array konsisten, tidak lebih dan kurang.

<pre> &lt;?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 &gt; 0) { array_push($gabung,[]); $i--; } // loop array Argument foreach($ArrayArgs as $key=&gt;$val){ // cek apakah argument bertype array if(is_array($ArrayArgs[$key])){ // looping masing2 array yang dimasukan kedalam argument foreach ($ArrayArgs[$key] as $key2 =&gt; $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 =&gt; |
  • array (size=3) |
  • 0 =&amp;gt; string &#039;0 - akun1 &#039; (length=10)     | 
    
  • 1 =&amp;gt; string &#039;0 - akun2 &#039; (length=10)     |
    
  • 2 =&amp;gt; string &#039;0 - akun3 &#039; (length=10)     |
    
  • 1 =&gt; |
  • array (size=3) |
  • 0 =&amp;gt; string &#039;1 - akun1&#039; (length=9)       |
    
  • 1 =&amp;gt; string &#039;1 - akun2&#039; (length=9)       |
    
  • 2 =&amp;gt; string &#039;1 - akun3&#039; (length=9)       |
    
  • 2 =&gt; |
  • array (size=3) |
  • 0 =&amp;gt; string &#039;2 - akun1&#039; (length=9)       |
    
  • 1 =&amp;gt; string &#039;2 - akun2&#039; (length=9)       |
    
  • 2 =&amp;gt; string &#039;2 - akun3&#039; (length=9)       |
    

*/ </pre>

avatar ridwantanjung
@ridwantanjung

30 Kontribusi 14 Poin

Dipost 4 tahun yang lalu

Script nya begini <pre> &lt;?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&lt;count($gabungArray);$baris++) { for($kolom=0;$kolom&lt;count($gabungArray[$baris]);$kolom++) { echo $gabungArray[$baris][$kolom]." "; } echo "&lt;br&gt;"; }

?&gt; </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

avatar ambangku
@ambangku

9 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

jadiin ke array multidimensi aja gan, ntar langsung di perulangan. lebih simple

avatar mjamilasfihani
@mjamilasfihani

2 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban