数组中数组的非法字符串偏移量

时间:2017-04-11 10:53:00

标签: php arrays

我有一个名为$quizzes的主数组,其中包含$Quiz的集合。 每个$Quiz都有以下字段:$Quiz['correct']为我提供了正确问题的数量。

我可以使用$quizzes[12]['correct']

获取第12个测验的正确问题数量

但是,由于这些测验没有按顺序显示,我决定定义一个新数组:

$listoftests = array('$quizzes[30]','$quizzes[51]');

在我的脑海中,$listoftests[0]['correct']应该等于$quizzes[30]['correct'],但它正在给我

  

警告:非法字符串偏移'正确'   /demo.php   在第14行$

当我尝试echo $listoftests[0]['correct'];

4 个答案:

答案 0 :(得分:1)

通过这样做

$listoftests = array('$quizzes[30]','$quizzes[51]');

你创建了2个字符串的数组。而已。不是数组数组。

你应该删除引号。您还可以使用isset()来检查数组项是否存在。

答案 1 :(得分:1)

在此$listoftests = array('$quizzes[30]','$quizzes[51]');中,这些被视为两个字符串$quizzes[30]$quizzes[51]。您应该删除单引号',然后重试。

更改此内容:

$listoftests = array('$quizzes[30]','$quizzes[51]');

$listoftests = array($quizzes[30],$quizzes[51]);

答案 2 :(得分:1)

删除单引号,它的shell工作正常https://docs.google.com/spreadsheets/export?id={GOOGLE_SPREADHSHEET_ID}&exportFormat=csv&mimeType=text/csv

答案 3 :(得分:1)

  

@GRS你可以用两种方式做到:

//case one where the element will be of string type
<?php
  $quizzes[30] = 3;
  $quizzes[51] = 32;
  $listoftests = array("$quizzes[30]","$quizzes[51]");
  var_dump($listoftests);

  //or

 //case two where the element will be of integer type
 <?php
  $quizzes[30] = 3;
  $quizzes[51] = 32;
  $listoftests = array($quizzes[30],$quizzes[51]);
  var_dump($listoftests);