我想改变多维数组的键

3

我想更改多维数组的键。该数组包含如1、15、23、45之类的键,应替换为普通索引键,例如0、1、2、3。我尝试了下面的代码,但是似乎缺少了一些东西。请有经验的人给我提供建议。

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

当前输出

数组 (

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

    )

)

预期输出:

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
                    )

            )
)

4
http://php.net/array_values 会重置数组的索引。 - Jonnix
1
把它放在循环块的末尾。 - Kevin
2个回答

3

0

来自php.net: array_values()返回数组中的所有值,并将数组按数字索引。

因此,只需在循环后添加它以重新索引您的数组:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接