php - 如何在多个数组中查找和替换特定值
问题描述
我想从数组中找到标志键并替换新值。例如,如果我发现标志值 == 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
)
...
)
解决方案
试试下面的例子
foreach ($fliesUserColumn as $key => $val) {
if ($fliesUserColumn[$key]['flag'] == '2') {
$fliesUserColumn[$key]['flag'] = 'Newvalue';
}
}