如何删除/添加数组中的元素

时间:2013-06-26 16:30:20

标签: php arrays

我有以下数组:

array(4) { 
    [0]=> array(1) { 
          [0]=> array(3) { 
               [0]=> string(11) "art_7880" [1]=> string(1) "1" [2]=> int(2950) 
          }
          [1]=> array(3) { 
               [0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)  
          } 
          [2]=> array(3) { 
               [0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)  
          }
          [3]=> array(3) { 
               [0]=> string(8) "art_7883" [1]=> string(1) "1" [2]=> int(4335)  
          }
}

在全局数组中,我想找到一个带元素的数组(例如,元素art_7880),然后我想在一个全局数组中添加一个元素art_7880的数组。

例如: 找到元素,例如art_7880

在全局数组中,元素将是一个art_7880 - [0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)

的数组

我需要获取此数组[0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)并添加或删除一次全局数组。

这是我使用的代码:

foreach ($all_array as $keys => $elms) {
if(in_array('art_7880', $elms) && !in_array('art_7880', $arr_uniq)){
$arr_uniq[] = ''art_7880'';
var_dump($elms); //should been show `[0]=> string(11) "art_7880" [1]=> string(1) "1" [2]=> int(2950)`
}

但它不起作用......

有人可以告诉我错误在哪里吗?

1 个答案:

答案 0 :(得分:0)

嗯,我认为问题是你在“art_7880”周围有两组引号,最终会给你一个错误,比如“Parse error:syntax error,unexpected'art_7880'(T_STRING)......”。然后,以下代码应提供正确的输出:

foreach ($all_array as $keys => $elms) {
    if(in_array('art_7880', $elms) && !in_array('art_7880', $arr_uniq)){
        $arr_uniq[] = 'art_7880';
        var_dump($elms);
    }
}

除非你的问题(可能还有)你在这里有一个3D阵列,但你只是将它视为2D阵列。 (因为我注意到你有很多嵌套数组。)在这种情况下,这应该给出正确的输出:

foreach ($all_array[0] as $keys => $elms) {
    if(in_array('art_7880', $elms) && !in_array('art_7880', $arr_uniq)){
        $arr_uniq[] = 'art_7880';
        var_dump($elms);
    }
}

希望其中一个代码段有用。祝你好运!