PHP 警告:非法偏移类型

Nic*_* Le 1 php multidimensional-array

我正在尝试启动这个数组,但我一直得到非法的偏移类型。老实说,我什至不确定我是否正确设置了阵列,任何帮助都会很好!

$device_changes = array
(
    [0] => array
        (
            ['device'] => "Connect",
            ['added'] => 0,
            ['removed'] => 0,
            ['net_change'] => 0,
            ['percent_added'] => 0,
            ['percent_removed'] => 0,
        ),
    [1] => array
        (
            ['device'] => "Camera",
            ['added'] => 0,
            ['removed'] => 0,
            ['net_change'] => 0,
            ['percent_added'] => 0,
            ['percent_removed'] => 0,
        ),
    [2] => array
        (
            ['device'] => "BATlte",
            ['added'] => 0,
            ['removed'] => 0,
            ['net_change'] => 0,
            ['percent_added'] => 0,
            ['percent_removed'] => 0,
        ),
    [3] => array
        (
            ['device'] => "BATwifi";
            ['added'] => 0,
            ['removed'] => 0,
            ['net_change'] => 0,
            ['percent_added'] => 0,
            ['percent_removed'] => 0,
        ),
);
Run Code Online (Sandbox Code Playgroud)

s27*_*840 5

键不需要用方括号括起来。

所以你应该有:

$device_changes = array
    (
        0 => array
            (
                'device' => "Connect",
                'added' => 0,
                'removed' => 0,
                'net_change' => 0,
                'percent_added' => 0,
                'percent_removed' => 0,
            ),
        1 => array
            (
                'device' => "Camera",
                'added' => 0,
                'removed' => 0,
                'net_change' => 0,
                'percent_added' => 0,
                'percent_removed' => 0,
            ),
        2 => array
            (
                'device' => "BATlte",
                'added' => 0,
                'removed' => 0,
                'net_change' => 0,
                'percent_added' => 0,
                'percent_removed' => 0,
            ),
        3 => array
            (
                'device' => "BATwifi",
                'added' => 0,
                'removed' => 0,
                'net_change' => 0,
                'percent_added' => 0,
                'percent_removed' => 0,
            ),
    );
Run Code Online (Sandbox Code Playgroud)

注意后面BATwifi应该是 , 放在行尾而不是 ; 也 :)

编辑:

您可能对方括号感到困惑,因为可以使用array()或设置数组[]。例如:

$device_changes = [
    0 => [
        'device' => 'Connect',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
    1 => [
        'device' => 'Camera',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
    2 => [
        'device' => 'BATlte',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
    3 => [
        'device' => 'BATwifi',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
];
Run Code Online (Sandbox Code Playgroud)

您甚至可以去掉数字键,因为默认情况下它们会设置为您使用过的键,从 0 开始并递增 1:

$device_changes = [
    [
        'device' => 'Connect',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
    [
        'device' => 'Camera',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
    [
        'device' => 'BATlte',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
    [
        'device' => 'BATwifi',
        'added' => 0,
        'removed' => 0,
        'net_change' => 0,
        'percent_added' => 0,
        'percent_removed' => 0,
    ],
];
Run Code Online (Sandbox Code Playgroud)