这个数组有什么问题?

4
我在这个数组上遇到了错误。数组内容如下:
    $array = array(
     ['parkingMode'] => array(
        [0] => 123
        [1] => 124
        [2] => 266
     ),
     ['owlMode'] => array(
        [0] => 124
        [1] => 129
        [2] => 266
     )
  );

请问这个正确吗?

更新:

现在我扩展了我的问题。假设我有一个空数组,像这样:

`$newArray = array("parkingMode"=>array(),
                    "owlMode"=>array()
);

我所做的是在foreach循环中推送元素,例如:

foreach($devices as $k => $v) {
        $dev = $redis->hGetAll($v);
        //print_r($dev);
            if(array_key_exists('owlMode', $dev)){
                if($dev['owlMode'] =='on'){
                    array_push($newArray["parkingMode"], $k);
                }
            }

            if(array_key_exists('parkingMode', $dev)){
                if($dev['parkingMode'] =='on'){
                    array_push($newArray["owlMode"], $k);
                }
            }
    }

//print_r($newArray);

那么为什么它会以数组形式给我返回结果呢?
$array = array(
     ['parkingMode'] => array(
        [0] => 123
        [1] => 124
        [2] => 266
     ),
     ['owlMode'] => array(
        [0] => 124
        [1] => 129
        [2] => 266
     )
  );

`


print_r 以人类可读的形式显示数据。在 PHP 中,这不是定义数组的正确方式。要了解更多信息,请参阅:http://php.net/manual/en/function.print-r.php。 - Lovepreet Singh
所以你想说生成的数组是正确的吗? - Umar
没错,数组是正确的,但不适合直接在PHP中定义。 - Lovepreet Singh
好的 @LovepreetSingh - Umar
2个回答

5

数组中的元素应该用逗号,分隔。这是正确的格式:

$array = array(
    'parkingMode' => array(
        0 => 123,
        1 => 124,
        2 => 266
    ),
    'owlMode' => array(
        0 => 124,
        1 => 129,
        2 => 266
    )
);

是的@deadman,我已经更新了我的问题。实际上,我是通过在 foreach 循环中从另一个数组中推送所选元素而得到该数组的结果。 - Umar

1
你应该创建关联数组。在关联数组中,分配给值的键可以是任意的和用户定义的字符串。
array(
     "parkingMode" => array(
        [0] => 123,
        [1] => 124,
        [2] => 266
    ), "owlMode" => array(
        [0] => 124,
        [1] => 129,
        [2] => 266
    ));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接