2015-03-03 126 views
0

我想分割一个关联数组,但发生的是它只是删除它的键并按升序排列。我想用键和值来获得关联数组的前5个元素。拆分关联数组

$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); 
+1

你尝试过什么?一小段代码对于试图更好地理解你的问题的人会有所帮助 – 2015-03-03 07:18:17

+0

你能告诉我们一些你到目前为止尝试过的代码吗? – 2015-03-03 07:19:00

+0

@VivekPradhan这是我到目前为止所尝试的 – 2015-03-03 07:23:50

回答

0

您可以使用array_slice

$new_array = array_slice($old_array, 0, 5, true); 
0
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);