如果有关的数组包含某个值,我想替换多维数组的值。
基本上,我有两个多维数组。一个包含实际数据,另一个包含是/否,是否应该修改第一个数组。
有没有办法做到这一点:
if optB[i][i] contains 'yes'
then opt[i][i] = '<strong>'.opt[i][i].'</strong>';
我很遗憾这是否可能。非常感谢任何帮助 - 谢谢!
感谢您的帮助。这是数组:
[opt] => Array
(
[0] => Array
(
[0] => value1
[1] => value2
)
[1] => Array
(
[0] => value3
[1] => value4
)
)
[optB] => Array
(
[0] => Array
(
[0] => on
)
[1] => Array
(
[1] => on
)
)
答案 0 :(得分:1)
有可能。你可以这样做:
for ($i = 0; $i < count(opt); $i++) {
if ($optB[$i][$i] == "yes")
opt[$i][$i] = '<strong>'.opt[$i][$i].'</strong>';
}
答案 1 :(得分:1)
这些是一些有趣的数组,因为通常数字数组总是有0.我想你可能有一些不同的键组合所以我认为这是最好的“面向未来”的方法:
foreach ($optB as $i => $optB2) {
foreach ($optB2 as $j => $val) {
if ($val) {
$opt[$i][$j] = '<strong>' . $opt[$i][$j] . '</strong>';
}
}
}
答案 2 :(得分:1)
可以这样写:
if (strpos($optB[$i][$i], 'yes'))
$opt[$i][$i] = '<strong>'.$opt[$i][$i].'</strong>';
答案 3 :(得分:0)
这些方面的东西:
foreach ($opt as $i => &$arr) {
foreach ($arr as $j => &$val) {
if ($optB[$i][$j]) {
$val = "<strong>$val</strong>";
}
}
}
根据需要进行修改。