在下面的代码中获取错误

时间:2015-03-28 08:13:00

标签: php

$arr['class'] =array("a"=>"seven","b"=>"eight","c"=>"nine");
$arr['class']['a']['dress'] ="black";
$arr['class']['b']['dress'] ="Green";
$arr['class']['c']['dress'] ="Red";

我不明白为什么它会显示“非法字符串偏移”。 这是错误: 警告:第32行的C:\ Users \ ASIF IQBAL \ Desktop \ RUN \ mail.php中的非法字符串偏移'dress'

警告:第33行的C:\ Users \ ASIF IQBAL \ Desktop \ RUN \ mail.php中的非法字符串偏移'连衣裙'

警告:第34行的C:\ Users \ ASIF IQBAL \ Desktop \ RUN \ mail.php中的非法字符串偏移'连衣裙'

4 个答案:

答案 0 :(得分:3)

$ arr ['class'] ['a']是一个字符串(5)“七”。

所以你要做的是“七”['dress']无法正常工作,因为字符串不是哈希表。

答案 1 :(得分:3)

我很遗憾地说这里的答案是错误的。 实际答案: 在php中,变量可以是数组或(非数组)。 例如:

$a= "555";
$a['o'] = 777;

这是错误的,因为$ a已经是非数组。如果您将删除第一行或第二行,您的代码将起作用。

在你的阵列中,同样的事情已经发生了。 $ arr ['class'] ['a']已经是非数组。所以打电话 $ arr ['class'] ['a'] ['dress']正在创建错误,因为它充当数组。 我想你会明白的。 祝你有美好的一天!!!!

答案 2 :(得分:2)

$arr['class'] =array("a"=>array("seven","dress"=>"black"),
"b"=>array("eight","dress"=>"Green"),
"c"=>array("nine","dress"=>"Red")
);

您的输出将是

Array
(
    [class] => Array
        (
            [a] => Array
                (
                    [0] => seven
                    [dress] => black
                )

            [b] => Array
                (
                    [0] => eight
                    [dress] => Green
                )

            [c] => Array
                (
                    [0] => nine
                    [dress] => Red
                )

        )

)

答案 3 :(得分:1)

你可以尝试

$arr['class']['a'][0]="seven";
$arr['class']['a']['dress'] ="black";
$arr['class']['b'][0]="eight";
$arr['class']['b']['dress'] ="green";
$arr['class']['c'][0]="nine";
$arr['class']['c']['dress'] ="red";