-2

如果对应的数组包含某个值,我想替换多维数组的值。

基本上,我有两个多维数组。一个包含实际数据,另一个包含是否应该修改第一个数组的是/否。

有没有办法做到这一点:

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
            )

    )
4

4 回答 4

1

有可能的。你可以这样做:

for ($i = 0; $i < count(opt); $i++) {
    if ($optB[$i][$i] == "yes")
        opt[$i][$i] = '<strong>'.opt[$i][$i].'</strong>';
}
于 2013-07-05T14:39:34.583 回答
1

这些是一些有趣的数组,因为通常数值数组总是有一个 0。我想你可能有一些不同的组合键,所以我认为这是最好的“面向未来”的方法:

foreach ($optB as $i => $optB2) {
    foreach ($optB2 as $j => $val) {
        if ($val) {
            $opt[$i][$j] = '<strong>' . $opt[$i][$j] . '</strong>';
        }     
    }        
}
于 2013-07-05T14:40:01.337 回答
1

可以这样写:

if (strpos($optB[$i][$i], 'yes'))
    $opt[$i][$i] = '<strong>'.$opt[$i][$i].'</strong>';
于 2013-07-05T14:40:05.860 回答
0

这些方面的东西:

foreach ($opt as $i => &$arr) {
    foreach ($arr as $j => &$val) {
        if ($optB[$i][$j]) {
            $val = "<strong>$val</strong>";
        }
    }
}

根据需要进行修改。

于 2013-07-05T14:40:26.260 回答