[英]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)
}
}
在全局數組中,我想找到一個包含元素的數組(例如element art_7880
),然后在全局數組中添加一個包含元素art_7880
數組。
例如:find元素,例如 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);
}
}
希望這些代碼片段之一對您有所幫助。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.