2012-06-27 127 views
0

我有这样一个问题,阵列0 10索引和我现在除去第0索引它像1至10 当我显示该阵列有在第0 position.I空柱希望重新排列该阵列到0到9. 目的是数组构造我的网格,第0个位置用于编辑,如果用户没有权限,则我取消设置第0个元素。 我如何重新安排我的阵列,以0到9重新排列阵列中的PHP

样品阵列结构是这样

[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

你如何去除数组的价值? – TNC

+0

你如何遍历数组并显示它? – bretterer

+0

使用['array_shift'(http://php.net/array_shift)删除第一个值,这个数字将被重新索引为你使用数字键。 – hakre

回答

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" 
} 

通知会重新索引你的阵列,为你的要求。

+1

+1:走的路我会说。 – hakre

+0

谢谢Dvir array_splice正在为我工​​作 – user1390436

6

有几个方法可以做到这一点,这里有两个最短的( array_values()/array_merge()):

$array = array_values($array); 
// or 
$array = array_merge($array); 

但你可能会考虑使用array_shift()/array_pop()/array_splice()从所述阵列的代替(大概)unset()荷兰国际集团它删除的项 - 这些将自动所有键转变成连续0索引的顺序。

+0

有时编辑可能会在另一个位置,目前它的第0个位置,所以只有不适用于我。 – user1390436

+0

@ user1390436其实['array_splice()'](http://php.net/manual/en/function.array-splice.php)可以让你从第n个位置的数组中移除元素,然后重新排序键一个操作 - 我编辑了我的答案。 – DaveRandom

+0

这正是我建议最初:) –