I am trying to split an associative array.But What happen is that it just remove it keys and order it in ascending order.I want to get top 5 elements of associative array with both keys and values.
$AllQuestions = Question::model()->findAll($criteria);
foreach ($AllQuestions as $aq) {
$question = array();
$question[$aq->id] = $aq->question;
if ($aq->type == "Realistic") {
$testViewModel->RealisticQuestions[$aq->id] = $aq->question;
} else if ($aq->type == "Investigative") {
$testViewModel->InvestigativeQuestions[$aq->id] = $aq->question;
} else if ($aq->type == "Conventional") {
$testViewModel->ConventionalQuestions[$aq->id] = $aq->question;
} else if ($aq->type == "Enterprising") {
$testViewModel->EnterpriseQuestions[$aq->id] = $aq->question;
} else if ($aq->type == "Social") {
$testViewModel->SocialQuestions[$aq->id] = $aq->question;
} else if ($aq->type == "Artistic") {
$testViewModel->ArtisticQuestions[$aq->id] = $aq->question;
}
}
$testViewModel->InvestigativeQuestions = array_slice($testViewModel->InvestigativeQuestions, 0, $maxQuestions);
$testViewModel->ArtisticQuestions = array_slice($testViewModel->ArtisticQuestions, 0, $maxQuestions);
$testViewModel->ConventionalQuestions = array_slice($testViewModel->ConventionalQuestions, 0, $maxQuestions);
$testViewModel->EnterpriseQuestions = array_slice($testViewModel->EnterpriseQuestions, 0, $maxQuestions);
$testViewModel->SocialQuestions = array_slice($testViewModel->SocialQuestions, 0, $maxQuestions);
$testViewModel->RealisticQuestions = array_slice($testViewModel->RealisticQuestions, 0, $maxQuestions);
您可以使用array_slice
$new_array = array_slice($old_array, 0, 5, true);
Use it:
$testViewModel->InvestigativeQuestions = array_slice($testViewModel->InvestigativeQuestions, 0, $maxQuestions, true);
$testViewModel->ArtisticQuestions = array_slice($testViewModel->ArtisticQuestions, 0, $maxQuestions, true);
$testViewModel->ConventionalQuestions = array_slice($testViewModel->ConventionalQuestions, 0, $maxQuestions, true);
$testViewModel->EnterpriseQuestions = array_slice($testViewModel->EnterpriseQuestions, 0, $maxQuestions, true);
$testViewModel->SocialQuestions = array_slice($testViewModel->SocialQuestions, 0, $maxQuestions, true);
$testViewModel->RealisticQuestions = array_slice($testViewModel->RealisticQuestions, 0, $maxQuestions, true);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.