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


How delete/add elements in an array

我有以下数组:

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)`
}

但它不起作用。。。

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

嗯,我认为问题是你在"art_7880"周围有两组引号,它们最终会给你一个错误,比如"分析错误:语法错误,意外的‘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);
    }
}

希望其中一个代码片段能有所帮助。祝你好运