3

I want to change the key of the multidimensional array. the array contains key like 1,15,23,45 which should be replaced by normal index key like 0,1,2,3. I tried with below code. Something is missing in below code. Please, anyone, suggest to me.

$keys = array_keys($data);
$d = 0;
foreach($data as $row){
    $key_data[$d] = $data[$keys[$d]];
    unset($row[$keys[$d]]);
    $d++;
}

Current Output

Array (

[15] => Array
    (
        [0] => Array
            (
                [app_dealer_id] => 15
                [dealer_name] => Sharad Thombre
                [shopname] => Shivshankar Fertilizer
                [contact_num] => 9049121143
                [district] => Parbhani
            )

    )

[18] => Array
    (
        [0] => Array
            (
                [app_dealer_id] => 18
                [dealer_name] => Gajanan Khapre
                [shopname] => Shreyas Krishi Kendra
                [contact_num] => 8007791946
                [district] => Parbhani
            )

    )

)

Expected Output:

Array
    (

        [0] => Array
            (
                [0] => Array
                    (
                        [app_dealer_id] => 15
                        [dealer_name] => Sharad Thombre
                        [shopname] => Shivshankar Fertilizer
                        [contact_num] => 9049121143
                        [district] => Parbhani
                    )

            )

        [1] => Array
            (
                [0] => Array
                    (
                        [app_dealer_id] => 18
                        [dealer_name] => Gajanan Khapre
                        [shopname] => Shreyas Krishi Kendra
                        [contact_num] => 8007791946
                        [district] => Parbhani
                    )

            )
)
SAVe
  • 814
  • 6
  • 22
Darshan Kini
  • 114
  • 8

2 Answers2

3

use array_values()

$array = array_values($array);

Output:-https://3v4l.org/cUAdl

Alive to die - Anant
  • 70,531
  • 10
  • 51
  • 98
0

From php.net : array_values() returns all the values from the array and indexes the array numerically.

So just add it after your loop to reindex you array :

$keys = array_keys($data);
$d = 0;
foreach($data as $row){
    $key_data[$d] = $data[$keys[$d]];
    unset($row[$keys[$d]]);
    $d++;
}
$newArray = array_keys($key_data);
Dylan KAS
  • 4,840
  • 2
  • 15
  • 33