使用array_unique
之后,将删除没有重复值的数组。但是,看起来键也被移除了,这留下了数组索引中的间隙(尽管对于关联数组来说是很好的)。如果我使用for循环进行迭代,我必须考虑缺失的索引,并将密钥复制到新数组中,但这看起来很笨拙。在PHP中,我该如何纠正数组中缺少的键?
16
A
回答
39
$foo = array_values($foo);
将重新编号的数组,你
1
而不是使用它听起来像你应该使用foreach循环回路。显然你不关心索引,因为你重新编号。
这个循环:
for ($i = 0; $i < $loopSize; $i++)
{
process($myArray[$i]);
}
变成
foreach($myArray as $key=> $value)
{
process($value);
/** or process($myArray[$key]); */
}
or even more simply
foreach($myArray as $value)
{
process($value);
}
0
在我使用的,而不是尝试的foreach在少数情况下,我很快就后悔了。
它总是可以避免的,你甚至可以使用foreach,但忽略值并使用键,几乎忘了它是一个foreach而不是for,但是避免了键的任何间隙,并自动地处理你的界限没有长度/最小/最大功能或任何东西。
ex。
foreach($myArray as $key=>$val)
{
myArray[$key] = myFunction(myArray[$key]);
}
我特别发现这对平行数组很有用。
$a = getA(); $b = getB();
foreach($a as $key=>val)
{
$sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])";
}
相关问题
- 1. 如何在PHP中的数组中添加缺少的索引?
- 2. 如何纠正数组中的冗余?
- 3. 如何纠正C中的大数组?
- 4. 在我的数组中缺少结果
- 5. 我该如何纠正editor.photoEditorDelegate = self?
- 6. 缺少PHP数组孙子
- 7. 如何纠正流程警告:解构(缺少注释)
- 8. PHP中缺少Session_start函数
- 9. PHP数组删除项目如果缺少关键
- 10. 在升级到Windows 10之后,我如何纠正这个ADODB在VB .NET中缺少的引用错误?
- 11. 在PHP函数中缺少参数?
- 12. 如何在数组或mySQL表中查找缺少的数据?
- 13. 在php 5.6.8中缺少JSON_PRESERVE_ZERO_FRACTION
- 14. PHP中缺少MySQL
- 15. 我的PHP版本中缺少XMLReader?
- 16. 如何纠正丢失的单元格/缺少分隔符导致在列集合中“移位”的数据?
- 17. 纠正php sendmail的参数?
- 18. 我该如何纠正这个舍入函数?
- 19. 我的右轴被切断了......我该如何纠正它?
- 20. 如何把键在数组中php
- 21. 如何纠正缺陷在这个函数
- 22. 如何减少数组键值如果有缺失值
- 23. 我应该如何弥补PHP中缺少静态初始化器?
- 24. 如何在PHP中减少数组的内部数组值?
- 25. 我该如何在PHP中制作基于JSON的数组
- 26. 我的安装失败(缺少DLL)。我该怎么做才能纠正这个问题?
- 27. 如何修复多个文件中缺少单引号的关联数组键
- 28. PHP中缺少参数$ _POST函数
- 29. 查找数组中缺少的元素
- 30. 如何纠正该网址(路线)
哇。我读了数组函数的列表,完全错过了那一个。谢谢。 – 2008-10-21 15:11:32