2017-10-10 126 views
1
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 
    ) 

) 

每个数组都是一个类别列表,后面跟着它的子类别和子子类别。我只想显示原始数字模式。所以想要因为数字,用于在图案阵列3已经存在以除去阵列2,但我想保持阵列1,因为下面4937的数目是阵列3的最终结果应该是这样的不同,php数组中的数组删除包含匹配值集合的数组

Array 
(

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

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

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

) 
+3

您试过了什么?你能告诉我们(代码)你遇到麻烦的地方吗? – lovelace

+0

如果最后阵列包含'4943',而不是'108'什么。这种行为应该是什么?该数组是否应该删除? –

+0

原始阵列的所有各项目属于,我则要求所有的祖先每个ID,并将它们添加到阵列中,所以最后阵列不能只包含4943'''的foreach($ product_cat为$类别作出$ cat-> term_id, 'acestors'=> get_ancestors($ cat-> term_id,'cat){simple_cats [] = array( 'parent_id'=> $ cat-> parent, 'id'=> product_cat') ); } 的foreach($ simple_cats如&$猫){$ 猫[ 'IDS'] = array_reverse($猫[ 'acestors']); array_push($猫[ 'IDS'],$猫[ 'ID']); $ cat_ids [] = $猫[ 'IDS']; }''' –

回答

2

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

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 
+0

最好的,就像一个魅力 –