douyanyan1123 2017-01-07 10:30
浏览 3546

如何检查数组元素是否已更改

Sorry I don't know the actual title of my question. I have a problem with a php array. my array is like :

 $Array =
    (
        [0] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 7
                        [subcat_id] => 1
                    )

            )

        [1] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 7
                        [subcat_id] => 1
                    )

            )


        [2] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 8
                        [subcat_id] => 2
                    )

            )


        [3] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 9
                        [subcat_id] => 3
                    )

            )

        [4] => Array

            (
                [Product] => Array
                    (
                        [cat_id] => 9
                        [subcat_id] => 3
                    )

            )

    ) 

Now I want to insert

[Subcat]=>'changed'

if the subcat_id is changed . How to check if the subcat_id is changed on the next key value.please help.

I have tried this :

    $sub_cat_last = '';
    foreach ($Array as $key => $p) {   
    $sub_cat = $p['Product']['subcat_id'];
    if($sub_cat != $sub_cat_last){    
    $Array[$key]['Subcat'] = 'change';
    $sub_cat_last = $p['Product']['subcat_id'];
    }
    }

But not working properly.

I want my array like :



 Array
    (
        [0] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 7
                        [subcat_id] => 1

                    )
            )

        [1] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 7
                        [subcat_id] => 1

                    )

            )

         [2] => Array
            (
                [Product] => Array
                    (
                        [Subcat] => change

                    )

            )   



        [3] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 8
                        [subcat_id] => 2

                    )


            )


        [4] => Array
            (
                [Product] => Array
                    (
                        [Subcat] => change

                    )

            )


        [5] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 9
                        [subcat_id] => 3

                    )

            )

        [6] => Array
            (
                [Product] => Array
                    (
                        [cat_id] => 9
                        [subcat_id] => 3
                    )

            )

         [7] => Array
            (
                [Product] => Array
                    (
                        [Subcat] => change

                    )

            )   


    )

Is this possible.

  • 写回答

3条回答 默认 最新

  • dos8410 2017-01-07 10:43
    关注

    This will do what you are looking for:

    $old_subcat_id = null;
    $newArray = Array();
    
    foreach ($Array as $item) {
        $subcat_id = $item['Product']['subcat_id'];
    
        if ($subcat_id != $old_subcat_id) {
            //do something here
            echo "subcat_id has changed from [$old_subcat_id] to [$subcat_id]<br>";
    
            if ($old_subcat_id != null) {
                $newArray[]['Product']['Subcat'] = 'change';
            }
            $old_subcat_id = $subcat_id;
        }
    
        $newArray[] = $item;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值