【发布时间】:2020-07-17 07:29:28
【问题描述】:
我的变量有问题,想将它用作array_push。
这是我的变量
$QueryStmtPart6 = "(int) $doc ['G03'],(int) $doc ['G04'],(int) $doc ['G05']";
我想像 in 一样使用
array_push($jsonData,array( $doc['ESN'],(int) $doc ['G03'],(int) $doc ['G04'],(int) $doc ['G05'] ));
但不使用该字符串。我想使用一个变量。 像这样的
array_push($jsonData,array($doc['ESN'], $QueryStmtPart6 ));
但我有一个错误,因为它会插入变成这样
0 => array:2 [▼
0 => "ESN1"
1 => "(int) $doc ['G03'],(int) $doc ['G04'],(int) $doc ['G05']" ]
这就是我想要的
0 => array:4 [▼
0 => "ESN1"
1 => 0
2 => 1
3 => 0 ]
我也试过这个
array_push($jsonData,array($doc['ESN'], $$QueryStmtPart6 ));
但它给了我错误
Notice: Undefined variable: (int) $doc ['G03'],(int) $doc ['G04'],(int) $doc ['G05']
这就是我从 MySQL 中检索数据的方式
$QueryStmtPart5 = SELECT GROUP_CONCAT(DISTINCT CONCAT('(int) &&doc [''',Location,''']' )) AS str_arraypush FROM vwrpt;
一旦执行我就得到了这个
$QueryStmtPart6 = (int) &&doc ['G03'],(int) &&doc ['G04'],(int) &&doc ['G05']
我将 && 替换为 $ 符号,如下所示
$QueryStmtPart6 = str_replace("&&","$",$QueryStmtPart6);
所以最终的结果是
$QueryStmtPart6= "(int) $doc ['G03'],(int) $doc ['G04'],(int) $doc ['G05']";
【问题讨论】:
-
确保您了解数组和字符串之间的区别。
-
这适用于我的情况吗?有什么解决方法吗?因为 QueryStmtPart6 将是动态的。它会有不同数量的元素。
-
如果所有值都来自
$doc,那么您可以使用元素名称列表并这样做——也许是G03,G04,G05。 -
@NigelRen 我不知道该怎么做。能给我举个例子吗?谢谢:)