更改数组的键

时间:2013-04-08 02:10:34

标签: php arrays multidimensional-array replace key

说我有这些:

$services = array();
$services["services0"];
$services["services1"];
$services["services2"];
$services["services3"];

我想创建一些循环来将这些更改为:

$services[0];
$services[1];
$services[2];
$services[3];

你会怎么做?不知道你在数组中有多少个key:value对?

2 个答案:

答案 0 :(得分:3)

最简单的方法是丢弃原始密钥,只需通过array_values()运行数组:

$new_array = array_values( $old_array);

您可以从this demo看到以下示例:

$services = array();
$services["services0"] = 's0';
$services["services1"] = 's1';
$services["services2"] = 's2';
$services["services3"] = 's3';

$services = array_values( $services);

print_r( $services);

生成此数组:

Array
(
    [0] => s0
    [1] => s1
    [2] => s2
    [3] => s3
)

答案 1 :(得分:0)

尝试类似以下代码的内容:

$dummy_array = $services;
$services = array();
foreach($dummy_array as $service) {
    $services[] = $service;

}

这里发生的是您正在取消设置服务(但首先保存它)然后循环保存的版本将值添加回数组。第$services[] = $service;行是关键所在。这会使用标准键将值附加到现有数组的末尾。即0,1,2,3等。这会创建一个结果,您希望删除字符串键并将其替换为标准数组键别。试一试,看看你得到了什么。祝你好运