【发布时间】:2017-02-21 07:47:56
【问题描述】:
读取特殊键时出现此错误,但我的 var 是数组。
这是我的代码:
while($d <= count($nom)) {
$last_d=$d;
$nomdata = 'data_'.$d;
$$nomdata = array();
$di = 1;
while($di <= count($data)) {
if($data[$di][2] == sprintf('%08d', $d)) {
array_push($$nomdata,$data[$di]);
}
$di++;
}
if(!empty($$nomdata)) {
# THIS WON'T WORK -> echo '<br>i:'.$$nomdata[1][2].'<br>';
# BUT THIS IS WORKING ↓
print_r($$nomdata);
}
$d++;
}
当我 print_r 时,我得到了我想要的多维数组。
Array
(
[0] => Array
(
[0] => 01556
[1] => 1
[2] => 00000002
[3] =>
[4] => 34
[5] => 0
[6] => 2016/09/01 10:19:11
)
[1] => Array
(
[0] => 01566
[1] => 1
[2] => 00000002
...
但是当我调用 $$nnomdata[1][2],(或 $data_2[1][2])时,我有这个错误:
Fatal error: Cannot use string offset as an array
我真的不明白。第一个数组 $data 是相同类型(多维),一切正常。我可以读取$data[1][2],但是由于我在$data_1,$data_2中传输它,所以我不能再这样读取它了。但是当我 print_r 时,这些键似乎没问题。
提前致谢。
【问题讨论】:
-
你的代码中有很多
$$。您确定要这样做吗? -
如果您使用 $$,您可能应该只使用数组。你有什么理由不只是为你的数组添加一个维度?
-
还有哪一行会抛出这个错误?
-
@Machavity :是的,有变量。
-
@bluegman991 我有一个多维数组 $data 。我想将所有具体行($data[$i][2] 是我要查找的 ID 的行)放在特定数组 $data_$ID
标签: php arrays string multidimensional-array