基于其他数组替换数组中的值

时间:2013-07-05 14:36:35

标签: php

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

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

有没有办法做到这一点:

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 个答案:

答案 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>";
        }
    }
}

根据需要进行修改。