0

0 10個のインデックスを持つ配列のような問題があります。0番目のインデックスを削除しました。この配列を表示すると、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
                    )

ありがとうアレックス

4

2 に答える 2

6

これを行うにはいくつかの方法があります。ここに2つの最も短い方法(array_values()/ array_merge())があります。

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

array_shift()しかし、 //を使用して、(おそらく)アイテムを配列から削除するのではなく、配列からアイテムを削除することをarray_pop()検討するかもしれません。これらは、すべてのキーを連続した0インデックスの順序に自動的にシフトします。array_splice()unset()

于 2012-06-27T22:54:44.437 に答える
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"
}

要求どおりに、配列のインデックスが再作成されることに注意してください。

于 2012-06-27T22:57:52.830 に答える