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
  • 816
  • 5
  • 20
Darshan Kini
  • 116
  • 8

2 Answers2

3

use array_values()

$array = array_values($array);

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

Anant Kumar Singh
  • 68,309
  • 10
  • 50
  • 94
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
  • 3,300
  • 2
  • 12
  • 27