0

我有以下数组:

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

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

例如:查找元素,例如。艺术_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)`
}

但它不起作用...

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

4

1 回答 1

0

嗯,我认为问题在于您在“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);
    }
}

希望这些代码片段之一对您有所帮助。祝你好运!

于 2013-06-26T18:20:23.223 回答