dongshi8425 2017-02-15 00:23
浏览 29
已采纳

PHP在数组和多维数组之间进行搜索和替换

I have input textarea, the text that I input is converted into $array like:

Array
(
    [0] => cat
    [1] => sat
    [2] => on
    [3] => the
    [4] => monkey
    [6] => is
    [7] => nice
    [8] => dog
    [9] => ate
    [10] => fish
)

And I have $another_array like:

Array
(
    [0] => Array
        (
            [id] => 1
            [word] => cat
            [keyword] => nice cat
        )

    [1] => Array
        (
            [id] => 2
            [word] => dog
            [keyword] => good dog
        )

    [2] => Array
        (
            [id] => 3
            [word] => monkey
            [keyword] => cute monkey
        )

    [3] => Array
        (
            [id] => 4
            [word] => fish
            [keyword] => fresh fish
        )

    [4] => Array
        (
            [id] => 5
            [word] => bird
            [keyword] => love bird
        )

    [5] => Array
        (
            [id] => 6
            [word] => rabbit
            [keyword] => rats
        )

    [6] => Array
        (
            [id] => 7
            [word] => animal
            [keyword] => not animal
        )

)

What I am trying to do is to replace every word in $array that matching [word] in $another_array and replace every words on textarea based [keyword] in $another_array

I tried to use str_replace, but the result is so messy.

The text I input in textarea

cat sat on the monkey, monkey is nice, dog ate fish

I want a result like

nice cat sat on the cute monkey, cute monkey is nice, good dog ate fresh fish

展开全部

  • 写回答

4条回答 默认 最新

  • dongzhuzhou4504 2017-02-15 00:53
    关注

    If you didn't get any options please try this.

    $array = array
    (
        0 => 'cat',
        1 => 'sat',
        2 => 'on',
        3 => 'the',
        4 => 'monkey',
        6 => 'is',
        7 => 'nice',
        8 => 'dog',
        9 => 'ate',
        10 => 'fish'
    );
    
    $anotherarray = array
    (
        0 => array('id' => 1,'word' => 'cat','keyword' => 'nice cat'),
        1 => array('id' => 2,'word' => 'dog','keyword' => 'good dog'),
        2 => array('id' => 3,'word' => 'monkey','keyword' => 'cute monkey'),
        3 => array('id' => 4,'word' => 'fish','keyword' => 'fresh fish'),
        4 => array('id' => 5,'word' => 'bird','keyword' => 'love bird'),
        5 => array('id' => 6,'word' => 'rabbit','keyword' => 'rats'),
        6 => array('id' => 7,'word' => 'animal','keyword' => 'not animal')
    );
    
    $concat = implode(' ', $array);
    
    echo $concat.'<br/>';
    
    foreach ($array as $key1 => $item) 
    {
        foreach ($anotherarray as $key2 => $search) 
        {
            if(in_array($item, $search))
            {
                $array[$key1] = $search['keyword'];
            }
        }
    }
    
    $concat = implode(' ', $array);
    
    echo $concat;
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

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

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

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

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

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

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

客服 返回
顶部