将静态数组转换为由foreach循环生成的

时间:2017-03-17 16:42:03

标签: php arrays loops foreach

我在这里有点迷失了这个阵列,如果可以,我需要一些“光”。

我的情况是:将某些静态数据从数组更改为foreach生成的数据。

静态php代码示例如下:

$p->data = array(
    array(
        array("A",148), //value_1 for letter A
        array("B",238), //value_1 for letter B
        array("C",151)  //value_1 for letter C
        ),
    array(
        array("A",238), //value_2 for letter A
        array("B",338), //value_2 for letter B
        array("C",285)  //value_2 for letter C
        ),
    array(
        array("A",278), //value_3 for letter A
        array("B",138), //value_3 for letter B
        array("C",205)  //value_3 for letter C
        )
);

我的问题是:当我尝试使用foreach生成相同的结果时,我做错了..我已经尝试过嵌套的foreach并且什么都没做(或者做错了),但这是我从我需要的结果中最接近的地方:

foreach($result as $reg){
    $p->data = array(
        array(
            array($reg['letters'],$reg['value_1'])
        ),
        array(
            array($reg['letters'],$reg['value_2'])
        ),
        array(
            array($reg['letters'],$reg['value_3'])
        )
    );
};

相反,我只得到具有正确值的第一个字母。如果我使用“$ p-> data []”来显示其他字母,则它不起作用。

我从上面的代码得到的var_dump()如下:

array(3) { 
    [0]=> array(1) {
        [0]=> array(2) {
             [0]=> string(1) "A"
             [1]=> int(148) }
        }
    [1]=> array(1) {
        [0]=> array(2) {
             [0]=> string(1) "A"
             [1]=> int(238) }
        }
    [2]=> array(1) {
        [0]=> array(2) {
             [0]=> string(1) "A"
             [1]=> int(278) }
        }
}

如您所见,只有第一个变量'letter'来自数组。我需要其他人,比如:

array(3) {
    [0]=> array(3) {
        [0]=> array(2) {
            [0]=> string(1) "A"
            [1]=> int(148)
        }
        [1]=> array(2) {
            [0]=> string(1) "B"
            [1]=> int(238)
        }
        [2]=> array(2) {
            [0]=> string(1) "C"
            [1]=> int(151)
        }
    }
    [1]=> array(3) {
        [0]=> array(2) {
            [0]=> string(1) "A"
            [1]=> int(238)
        }
        [1]=> array(2) {
            [0]=> string(1) "B"
            [1]=> int(338)
        }
        [2]=> array(2) {
            [0]=> string(1) "C"
            [1]=> int(285)
        }
    }
    [2]=> array(3) {
        [0]=> array(2) {
            [0]=> string(1) "A"
            [1]=> int(278)
        }
        [1]=> array(2) {
            [0]=> string(1) "B"
            [1]=> int(138)
        }
        [2]=> array(2) {
            [0]=> string(1) "C"
            [1]=> int(205)
        }
    }
}

解释代码:在foreach im中使用..我从数据库中获取值。每个变量“Letter”都有3个变量“Values”。我想要做的是为每个数组上分隔的每个字母显示一个相同的变量值。

有人能指出我正确的方向吗?谢谢大家o /

1 个答案:

答案 0 :(得分:0)

什么是$ reg ['letters']? $ result来自哪里?

你需要一个字母数组,你需要迭代它。我可以提供更多信息。