我有以下数组:
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)`
}
但它不起作用......
有人可以告诉我错误在哪里吗?
答案 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);
}
}
希望其中一个代码段有用。祝你好运!