我有一个$scripts_stack = [];
包含数组的数组:
$array_item = array('script' => $file_parts, 'handle' => $file_name, 'src' => $url);
array_push($scripts_stack, $array_item);
<?php
for ($i = 0; $i < sizeof($scripts_stack); $i++) {
$child_array = $scripts_stack[$i];
if (is_array($child_array)) {
// Do things with $child_array,
// then remove the child array from $scripts_stack when done with (BELOW)
unset($scripts_stack[$i]);
}
}
echo "Array Size : " . (sizeof($scripts_stack)); // AT THE END
但是,我的尝试只删除了一半的元素。无论我尝试什么,只有一半的项目被删除。sizeof($scripts_stack)
始终是开始时大小的一半。
我期待它会是空的// AT THE END
为什么我只删除了数组中的一半元素?
谢谢大家。
如其他答案中所述,$i
增加但sizeof()
数组缩小。foreach()
可能是最灵活的数组循环,因为它公开了实际的键(而不是希望它从 0 开始并以 1 递增)和值:
foreach ($scripts_stack as $key => $child_array) {
if (is_array($child_array)) {
// Do things with $child_array,
// then remove the child array from $scripts_stack when done with (BELOW)
unset($scripts_stack[$key]);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句