我有以下数组:
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);
}
}
希望其中一个代码片段能有所帮助。祝你好运