PHP undefined offset 2

use*_*208 0 javascript php arrays

我这里有这个代码.我试图遍历我拥有的数组并替换color_codes中的所有哈希和破折号.它工作,但我undefined offset 2在str替换线上得到一个错误.它还在最后添加另一个名为'color_codes'的数组.

for ($i = 0; $i < count($colours); $i++) {
    for ($ii = 0; $ii < count($colours[$ii]); $ii++) {
        $colours[$i][$ii]['color_codes'] = str_replace(',','-', $colours[$i][$ii]['color_codes']);
        $colours[$i][$ii]['color_codes'] = str_replace('#','', $colours[$i][$ii]['color_codes']);

    }
}
Run Code Online (Sandbox Code Playgroud)

原始数组

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [item_color] => Black
                    [color_codes] => #000000,#000000
                )

            [1] => Array
                (
                    [item_color] => Red
                    [color_codes] => #FF0033,
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [item_color] => White
                    [color_codes] => #FFFFFF,
                )

            [1] => Array
                (
                    [item_color] => Black
                    [color_codes] => #0C0C0C,#0C0C0C,
                )

        )
)
Run Code Online (Sandbox Code Playgroud)

foreach之后创建的数组

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [item_color] => Black
                    [color_codes] => 000000-000000-
                )

            [1] => Array
                (
                    [item_color] => Red
                    [color_codes] => FF0033-
                )

            [2] => Array
                (
                    [color_codes] => 
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [item_color] => White
                    [color_codes] => FFFFFF-
                )

            [1] => Array
                (
                    [item_color] => Black
                    [color_codes] => 0C0C0C-0C0C0C-
                )

            [2] => Array
                (
                    [color_codes] => 
                )

        )
)
Run Code Online (Sandbox Code Playgroud)

我不知道问题似乎在哪里,它的工作区别于 Undefined offset error

xda*_*azz 5

for ($ii = 0; $ii < count($colours[$ii]); $ii++) {
Run Code Online (Sandbox Code Playgroud)

应该

for ($ii = 0; $ii < count($colours[$i]); $ii++) {
Run Code Online (Sandbox Code Playgroud)

但你可能会foreach赞成for循环.