簡體   English   中英

如何刪除/添加數組中的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM