我得到了 2 个数组作为 $_SESSION 的值。它们应该是相同的,但如果它们不是,我想在一个函数中检查它,结果使用值不相同的索引创建第三个数组。例如:
$_SESSION['correctAnswers'] = ( [0] => 'horse' [1] => 'elephant' [3] => 'tiger' )
$_SESSION['usersAnswerArray'] = ( [0] => 'dog' [1] => 'cat' [3] => 'tiger' )
$result = ( [0] => 0 [1] => 1 )
这是我不起作用的功能:
public function getWrongIndexes()
{
$index=0;
unset($licznik);
unset($indexes);
foreach($_SESSION['correctAnswers'] AS $correct)
{
if(trim($correct) != trim($_SESSION['usersAnswerArray'][$index]))
{
if(isset($indexes))
{
array_push($indexes,$index);
}else{
$indexes[0] = $index;
}
array_push($indexes,$index);
}
$index++;
}
print_r($indexes);
//return $indexes;
}
有什么功能可以解决我的问题吗?如果没有,我该怎么做?
@edit 感谢您解决我的问题
你能帮我解决类似的问题吗?现在,从名为 $words 的数组中,我只想从您的解决方案中获取从数组中获取索引的这些单词。我得到的:
public function createNewWordsList($indexes)
{
$words = $this->wordsArray();
$licznik = 0;
$result = array();
foreach($words AS $i => $word)
{
if($i == $indexes[$licznik])
{
$licznik++;
$result[] = $word;
}
}
print_r($word);
}
这是稍微编辑的,可以做你需要的
public function getWrongIndexes()
{
$indexes = array();
foreach($_SESSION['correctAnswers'] AS $i => $correct)
{
if(trim($correct) != trim($_SESSION['usersAnswerArray'][$i]))
{
$indexes[] = $i;
}
}
print_r($indexes);
//return $indexes;
}
我已经删除了第二个'array_push($indexes,$index);,因为这不是必需的,并使用第一个数组中的键,而不是第二个'$index'变量。