dongqu1783 2017-11-25 17:45 采纳率: 100%
浏览 129
已采纳

从包含特定字符串的多维数组中过滤元素

I have the following array

Array
(
[0] => Array
    (
        [text] => Array
            (
                [content] => I
                [beginOffset] => 0
            )

        [partOfSpeech] => Array
            (
                [tag] => PRON
                [aspect] => ASPECT_UNKNOWN
                [case] => NOMINATIVE
                [form] => FORM_UNKNOWN
                [gender] => GENDER_UNKNOWN
                [mood] => MOOD_UNKNOWN
                [number] => SINGULAR
                [person] => FIRST
                [proper] => PROPER_UNKNOWN
                [reciprocity] => RECIPROCITY_UNKNOWN
                [tense] => TENSE_UNKNOWN
                [voice] => VOICE_UNKNOWN
            )

        [dependencyEdge] => Array
            (
                [headTokenIndex] => 1
                [label] => NSUBJ
            )

        [lemma] => I
    )
...

I want to remove all elements that contain the string "_UNKNOWN" as they are not necessairy

how would I go about that?

展开全部

  • 写回答

1条回答 默认 最新

  • doufei5537 2017-11-25 21:15
    关注

    Assuming all your 'UNKNOWN' are going to be in 'partOfSpeech', you can use this simple code to remove all the elements containing the string '_UNKNOWN':

    $array = ['text' => ['content' => 'I', 'beginOffset' => 0], 'partOfSpeech' => ['tag' => 'PRON', 'aspect' => 'ASPECT_UNKNOWN', 'form' => 'FORM_UNKNOWN']]; // Example array
    
    $array['partOfSpeech'] = array_filter($array['partOfSpeech'], 
      function($item) { 
        return strpos($item, '_UNKNOWN') === false; 
      });
    
    print_r($array);
    

    Output:

    Array ( [text] => Array ( [content] => I [beginOffset] => 0 ) [partOfSpeech] => Array ( [tag] => PRON ) )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部