PHP foreach数组值第二个循环数组键重置

时间:2014-04-27 07:54:14

标签: php

我有数组

category_id[0]属于product_id[1]数组

category_id[1]属于product_id[2]数组

我运行一个foreach循环和内部foreach我使用array_values重置

我得到了错误:

Notice:  Undefined offset: 0 in 
Warning:  array_values() expects parameter 1 to be array, null given in 
Warning:  Invalid argument supplied for foreach() 

下面是数组:

[category_id] => Array
        (
            [0] => cat1
            [1] => cat2
        )

    [product_id] => Array
        (
            [1] => Array
                (
                    [1] => prod1
                    [2] => prod2
                    [3] => prod3
                )

            [2] => Array
                (
                    [2] => prod4
                    [3] => prod5
                )

        )

<?
foreach($_REQUEST['category_id'] as $key=>$value)
    {
    if(!empty($value))
    {
    mysql_query( "insert into category(category_id) values('".$_REQUEST['category_id'][$key]."')");
    $cat_id = mysql_insert_id();
    echo mysql_error();

    foreach(array_values($_REQUEST['product_id'][$key]) as $key1=>$value1)
    {



            mysql_query("INSERT INTO `product` (category_id,`prod_id`) VALUES ('".$cat_id."','".$value1."')");


    }
    }

   }
?>

1 个答案:

答案 0 :(得分:0)

问题在于你的索引。 category_id数组从0开始,而product_id数组 从1开始。因此,在第二个循环的第一次迭代中,您确实将null置于其中 array_values

错误消息确实告诉了您,请在两个警告之前查看通知。