我有一个问题,如0个索引的数组,我删除了第0个索引,现在它就像1到10 当我显示这个数组时,在第0个位置有一个空列。我想将这个数组重新排列为0到9。 目的是数组构造我的网格,第0个位置用于编辑,如果用户没有权限,那么我取消设置第0个元素。 如何将我的数组重新排列为0到9
示例数组结构类似于
[fields] => Array
(
[1] => Array
(
[header] => Array
(
[fieldName] => OFFERID
[displayName] => History
[width] => 70
)
[visibility] => Array
(
[showOnStart] => 1
[editable] =>
)
[cell] => Array
(
[type] => raw
[params] => Array
(
[text] => <a href="javascript:void(0);" id="{{OFFERID}}" class="btnHistory">History</a>
)
)
[sort] => Array
(
[sortable] => 1
)
[validator] => Array
(
[name] =>
[params] =>
)
)
[2] => Array
(
[header] => Array
(
[fieldName] => OFFERID
[displayName] => Offer Id
[group] => 0
)
感谢 亚历
答案 0 :(得分:6)
有几种方法可以做到这一点,以下是两个最短的方法(array_values()
/ array_merge()
):
$array = array_values($array);
// or
$array = array_merge($array);
但您可能会考虑使用array_shift()
/ array_pop()
/ array_splice()
从数组中删除项目而不是(可能)unset()
- 这些会自动将所有密钥转换为连续的0索引顺序。
答案 1 :(得分:3)
您可以使用array_splice
删除数组的一部分。
array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )
例如:
$array = array(0 => "a", 1 => "b", 2 => "c");
array_splice($array, 0, 1);
var_dump($array);
将输出:
array(2) {
[0]=> string(1) "b"
[1]=> string(1) "c"
}
请注意,它会按照您的要求重新索引您的数组。