0

i just want to make two index array to be one array.

this is my code:

$intdate=array();
$arr=0;
foreach ($cek_cutay as $key => $value) {
  $intdate[] =intervalDate($value->tgl_cuti_awal,$value->tgl_cuti_akhir);
  $intdate[$arr++];
}

the result like :

array(2) { 
    [0]=> array(4) { 
            [0]=> string(10) "2018-11-12"
            [1]=> string(10) "2018-11-13"
            [2]=> string(10) "2018-11-14"
            [3]=> string(10) "2018-11-15" 
        } 
    [1]=> array(2) { 
            [0]=> string(10) "2018-10-31" 
            [1]=> string(10) "2018-11-01" 
        } 
}

i hope to be like :

array(5){ 
    [0]=> string(10) "2018-11-12"
    [1]=> string(10) "2018-11-13"
    [2]=> string(10) "2018-11-14"
    [3]=> string(10) "2018-11-15" 
    [4]=> string(10) "2018-10-31" 
    [5]=> string(10) "2018-11-01" 
}

Thank you..!!

Abdul Rozak
  • 1
  • 1
  • 1

4 Answers4

1

If the return from the intervalDate function is an array, you can do this

$intdate=array();
$arr=0;
foreach ($cek_cutay as $key => $value) {
    foreach (intervalDate($value->tgl_cuti_awal,$value->tgl_cuti_akhir) as $date) {
        $intdate[] = $date;
    }
}
Syamsul Anwar
  • 36
  • 1
  • 4
0

I think you expected to merge two array into a single array. If so then array_reduce might help you simply.

$arr = [
    [
        "2018-11-12",
        "2018-11-13",
        "2018-11-14",
        "2018-11-15" ,
    ],
    [
        "2018-10-31",
        "2018-11-01",
    ]
];

$intdate = array_reduce($arr, function($old, $new) {
    return array_merge($old, $new);
}, []);

echo '<pre>', print_r($intdate), '</pre>';
MH2K9
  • 11,951
  • 7
  • 32
  • 49
0

You could use this function

function flatten_array( array $array, array $flattened = array() ) {
    foreach ( $array as $item ) {
        if ( is_array($item) ) {
            $flattened = flatten_array( $item, $flattened );
            continue;
        }

        $flattened[] = $item;
    }

    return $flattened;
}

$arr = array(
    array(
        "2018-11-12",
        "2018-11-13",
        "2018-11-14",
        "2018-11-15" ,
    ),
    array(
        "2018-10-31",
        "2018-11-01",
    ),
);

flatten_array($arr);
kellymandem
  • 1,709
  • 3
  • 17
  • 27
0
    $arr1 = array(1,2,3,4,5,11);
    $arr2 = array(6,7,8,9,10,11);
    echo'<pre>';print_r(array_merge($arr1,$arr2));
    echo'<pre>';print_r(array_unique(array_merge($arr1,$arr2)));die;

respective output :

array_merge :
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 11
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
    [11] => 11
)
array_unique + array_merge :
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 11
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
)
M.Hemant
  • 2,345
  • 1
  • 9
  • 14