Php 更改数组的键

Php 更改数组的键,php,arrays,multidimensional-array,replace,key,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对?请尝试以下代码: $dummy_arra

假设我有这些:

$services = array();
$services["services0"];
$services["services1"];
$services["services2"];
$services["services3"];
我想创建某种循环,将其更改为:

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

你将如何着手这样做?不知道数组中有多少个key:value对?

请尝试以下代码:

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

}

这里发生的情况是,您正在取消设置服务(但先保存),然后在保存的版本中循环,将值添加回数组中。行
$services[]=$service是这里的关键。这将使用标准键在现有数组的末尾追加一个值。即0、1、2、3等等。这将创建要删除字符串键并用标准数组键索引替换它们的结果。尝试一下,看看你得到了什么。祝你好运

尝试以下代码:

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

}

这里发生的情况是,您正在取消设置服务(但先保存),然后在保存的版本中循环,将值添加回数组中。行
$services[]=$service是这里的关键。这将使用标准键在现有数组的末尾追加一个值。即0、1、2、3等等。这将创建要删除字符串键并用标准数组键索引替换它们的结果。尝试一下,看看你得到了什么。祝您好运

执行此操作并丢弃原始密钥的最简单方法是通过以下方式运行数组:

从中可以看到以下示例:

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

执行此操作并放弃原始密钥的最简单方法是通过以下方式运行阵列:

从中可以看到以下示例:

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


是的,有两个好方法。。。使用
for
foreach
循环。我理解这两个概念。。。但我在想,也许我首先得到数组中元素的数量,然后从零开始创建for循环,直到数组的长度。在该循环中,创建一个foreach循环,该循环进入每个
$key
,并用当前迭代替换该循环……我相信一定有一个更容易解决此问题的方法!?是的,有两个好方法。。。使用
for
foreach
循环。我理解这两个概念。。。但我在想,也许我首先得到数组中元素的数量,然后从零开始创建for循环,直到数组的长度。在该循环中,创建一个foreach循环,该循环进入每个
$key
,并用当前迭代替换该循环…我确信一定有一个更容易绕过此问题的方法!?。。。除非它不是按键排序,否则你需要。太棒了!感谢这条我从未听说过的妙语连珠:)我喜欢和你们分享。。。我们每天都学习新事物!请注意:看起来只保留了键中的数字(即0-3)。。。。除非它不是按键排序,否则你需要。太棒了!感谢这条我从未听说过的妙语连珠:)我喜欢和你们分享。。。我们每天都学习新事物!请注意:看起来只保留了键(即0-3)中的数字。非常酷,我会记住这一点,我要感谢您的贡献,您的代码简单、整洁,达到了预期效果,然而,上面的代码是一个单行程序,也是一个我以前从未见过的整洁的小函数,所以重点是他,但我确实喜欢你的函数too@hayonj没问题。我在工作中经常使用array[]语法。对于其他类型的问题,它很方便,所以它是一个很好的工具,可以放在你的工具包中。但我不知道为什么其他人会投票反对一个有效的解决方案。奇怪的地方,我想这是…你的答案和上面的一样有效,我希望我能帮助你不要被否决。我不知道如何继续,但你的代码是有效的,不应该被否决,并且可以用于许多其他事情,而不是我需要它来获得声誉:)一旦我到了那里,我就会投票!我现在10岁了,而且我喜欢你解释函数的方式,因为大多数人都不太了解细节。。。他们在函数中粘贴而不做太多解释…非常酷,我会记住,我要感谢你的贡献,你的代码简单整洁,达到了预期的效果,然而,上面的代码是一个单行程序,也是一个我以前从未见过的整洁的小函数,所以重点是他,但我确实喜欢你的函数too@hayonj没问题。我在工作中经常使用array[]语法。对于其他类型的问题,它很方便,所以它是一个很好的工具,可以放在你的工具包中。但我不知道为什么其他人会投票反对一个有效的解决方案。奇怪的地方,我想这是…你的答案和上面的一样有效,我希望我能帮助你不要被否决。我不知道如何继续,但你的代码是有效的,不应该被否决,并且可以用于许多其他事情,而不是我需要它来获得声誉:)一旦我到了那里,我就会投票!我现在10岁了,而且我喜欢你解释函数的方式,因为大多数人都不太了解细节。。。他们在函数中粘贴,但没有过多解释。。。