首页 > 解决方案 > 如何在多个数组中查找和替换特定值

问题描述

我想从数组中找到标志键并替换新值。例如,如果我发现标志值 == 2,那么我将使用新值而不是旧值。

以下是我的数组。

Array
(
    [0] => Array
        (
            [id] => 863
            [flag] => 1
            [qty] => 2
            [size] => 8
            [fly_name] => Bead Headed Prince Nymphs size 18
        )

    [1] => Array
        (
            [id] => 861
            [flag] => 1
            [qty] => 2
            [size] => 8
            [fly_name] => Bead Headed Prince Nymphs size 14
        )

    [2] => Array
        (
            [id] => 671
            [flag] => 1
            [qty] => 4
            [size] => 8
            [fly_name] => Royal Wulff size 12
        )

    [3] => Array
        (
            [id] => 661
            [flag] => 1
            [qty] => 2
            [size] => 3
            [fly_name] => Hare's Ear Tan size 16
        )
)

我想查找如果 flag key == 2 然后替换 flag key 的新值,我尝试了以下方式但不起作用。

if(in_array(2, $fliesUserColumn)) { // search value in the array
    foreach($fliesUserColumn as $key => $val)
    {
            if ($val == '2') $fliesUserColumn[$key] = 'search4';
            }
    }else{
            echo "not";
    }
        echo "<pre>";
        print_r ($flyOfStores);
        echo "</pre>";
    die;

并像数组中的新值一样输出

Array
(
    [0] => Array
        (
            [id] => 863
            [flag] => newvalue
            [qty] => 2
            [size] => 8
            [fly_name] => Bead Headed Prince Nymphs size 18
        )

    [1] => Array
        (
            [id] => 861
            [flag] => newvalue
            [qty] => 2
            [size] => 8
            [fly_name] => Bead Headed Prince Nymphs size 14
        )
   ...

)

标签: phparrays

解决方案


试试下面的例子

foreach ($fliesUserColumn as $key => $val) {
        if ($fliesUserColumn[$key]['flag'] == '2') {
            $fliesUserColumn[$key]['flag'] = 'Newvalue';
       } 
}

推荐阅读