php使用组合的数字键和字符串键重新索引关联数组中的数字键
我有这个数组php使用组合的数字键和字符串键重新索引关联数组中的数字键,php,arrays,Php,Arrays,我有这个数组 [20_fill_1] => Array ( [autoTuned] => Array ( [0] => fill-0*6.35*6.6*legitPhraseWith*VMWshkqbhfA*fill_3.mp4 ) [fill] => Array ( [0] => fil
[20_fill_1] => Array
(
[autoTuned] => Array
(
[0] => fill-0*6.35*6.6*legitPhraseWith*VMWshkqbhfA*fill_3.mp4
)
[fill] => Array
(
[0] => fill-0*6.35*6.6*subwordPhraseWith*VMWshkqbhfA*fill_4.mp4
)
[1] => fill-0*6.35*6.6*legitPhraseWith*VMWshkqbhfA*fill_3.mp4
[ill] => Array
(
[oil] => Array
(
[0] => oil-0*6.8*7.05*similarSubwordPhraseWith*HZNbg-1bz1c*oil_4.mp4
)
)
)
没有[0]的原因是我刚刚将其取消设置。现在我希望[1]成为新的[0],如果有更多的数字键,我希望它们也改变,使数字键有序。但是,我需要保留字符串键
编辑:这是我删除第0个元素之前的数组:
[20_fill_1] => Array
(
[0] => added#fill-0*6.35*6.6*subwordPhraseWith*VMWshkqbhfA*fill_4.mp4
[autoTuned] => Array
(
[0] => fill-0*6.35*6.6*legitPhraseWith*VMWshkqbhfA*fill_3.mp4
)
[fill] => Array
(
[0] => fill-0*6.35*6.6*subwordPhraseWith*VMWshkqbhfA*fill_4.mp4
)
[1] => fill-0*6.35*6.6*legitPhraseWith*VMWshkqbhfA*fill_3.mp4
[ill] => Array
(
[oil] => Array
(
[0] => oil-0*6.8*7.05*similarSubwordPhraseWith*HZNbg-1bz1c*oil_4.mp4
)
)
)
<>而不是取消< <代码>零>代码>元素,考虑使用。它将自动删除
0th
元素,重新索引其他数值索引,并保留非数值键和值。如果您的数组不是很大,您可以构建另一个数组:
$output = [];
foreach ($original as $key => $item):
if(is_string($key)) $output[$key] = $item;
else $output[] = $item;
endforeach;
$output
是您想要的
更新:
您还可以在数组的开头取消移动(插入)一个伪元素,然后移动(移除)它。这将重新设置数字键并保留字符串键:
array_unshift($original,'dummy');
array_shift($original);
感谢@brennonbrimhall提供的灵感。在我看来,您可能想支持并想出另一种解决问题的方法。你到底想在这里完成什么?我相信你可以拼凑出一种方法来做你想做的事情,但无论你想做什么,这都是一种丑陋的方法。我正在设置第一个数组维度中包含特定值的值string@I需要帮助请尽可能地具体一些,更好地解释你的理由,以便其他人能更好地帮助你:)请为您的输入呈现更大/更好的表示形式,并显示您的预期结果。有时它不是我要删除的第一个元素,而是一个巨大的多维数组:/@Ineedhelp必须保持元素顺序吗?重新设置关键帧只是为了顶级数组,对吗?(换句话说,你不需要进入多维空间来重新设置子数组的键。@Ineedhelp我更新了我的答案,这样你就不需要在内存中创建第二个数组,因为你的输入是一个巨大的数组。
array\u unshift()!