php数组数组移除包含匹配值集合的数组

php数组数组移除包含匹配值集合的数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,每个数组都是一个类别列表,后跟其子类别和子类别。我只想显示数字的原始模式。所以我想删除数组2,因为数组3中已经存在该数字模式,但我想保留数组1,因为4937后面的数字与数组3不同。最终的结果应该是, Array ( [0] => Array ( [0] => 4937 ) [1] => Array ( [0] => 4937 [1] => 4941 ) [2] =>

每个数组都是一个类别列表,后跟其子类别和子类别。我只想显示数字的原始模式。所以我想删除数组2,因为数组3中已经存在该数字模式,但我想保留数组1,因为4937后面的数字与数组3不同。最终的结果应该是,

Array
(
  [0] => Array
    (
        [0] => 4937
    )

  [1] => Array
    (
        [0] => 4937
        [1] => 4941
    )

  [2] => Array
    (
        [0] => 4937
        [1] => 5610
    )

  [3] => Array
    (
        [0] => 4937
        [1] => 5610
        [2] => 4943
    )

  [4] => Array
    (
        [0] => 108
    )

)

如果子类别没有多个父类别,请尝试以下操作:

Array
(

  [1] => Array
    (
        [0] => 4937
        [1] => 4941
    )

  [3] => Array
    (
        [0] => 4937
        [1] => 5610
        [2] => 4943
    )

  [4] => Array
    (
        [0] => 108
    )

)
for($i=1;$i
您尝试过什么?您能告诉我们(代码)哪里出了问题吗?如果最后一个数组包含
4943
而不是
108
,该怎么办。行为应该是什么?是否应该删除该数组?原始数组由每个项所属的所有类别组成,然后我请求每个id的所有祖先并将它们添加到数组中,因此最后一个数组不能只包含4943```foreach($product_cat as$cat){$simple_cat[]=array('parent_id'=>$cat->parent,'id'=>$cat->term_id,'acestors'=>get_祖先($cat->term_id,'product_cat'));}foreach($cat['id']=array_reverse($cat['acestors'])array_push($cat['id',$cat['id']);$cat_id[]=$cat[]```
for($i = 1; $i < count($array); $i++){
    end($array[$i-1]);
    $k = key($array[$i-1]);
    if ($array[$i-1][$k] == $array[$i][$k]) {
        unset($array[$i-1]);
    }
}
$array = array_values($array); // reindex array if you need