【发布时间】:2017-03-17 16:42:02
【问题描述】:
我对这里的这个数组有点迷茫,如果可以的话,我需要一些“光”。
我的情况是:将一些静态数据从数组改成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) }
}
}
如您所见,只有第一个变量“字母”来自数组。我需要其他的,像这样:
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 中我正在使用..我从数据库中获取值。每个变量“字母”有 3 个变量“值”。我试图做的是为每个数组上分隔的每个字母显示一个相同的变量值。
有人能指出我正确的方向吗?谢谢大家哦/
【问题讨论】: