如何拆分Zend_Form_Element Multi Checkbox的每一行的值

时间:2014-03-06 17:34:27

标签: zend-framework zend-form

我有Zend_Form_Element_MultiCheckbox,其值为:

  1. CSCI 5200软件[2013年秋季]
  2. CSCI 5200设计[2014年秋季]
  3. 现在我需要在将每个值插入数据库之前将其拆分。例如,第一个值应分为CSCI,5200,Software和FALL 2013。

    我试过了:

    $course = $this->getValue(self::ELEMENT_COURSES);
    foreach ($course as $item) {
        foreach($item as $key=>$value) {
            echo $value."\n";
        }
    

    但它不起作用。

2 个答案:

答案 0 :(得分:0)

我不确定我理解,但因为还没有答案。 :)
如果可能,在您的可用值(选项值)中,您应该放置一个分隔符,然后使用侧面的php explode method

答案 1 :(得分:0)

您的问题仍然不明确。但你想要的是我想,你想将这些选项分解为数组,如

$course = $this->getValue(self::ELEMENT_COURSES);
$finalResult = array();
$counter = 0;
foreach ($course as $value) {
    $session = explode("[", $value);
    $sessionResult = rtrim($session[1], "]");
    $testArray = explode(" ", $session[0]);
    unset($testArray[count($testArray) - 1]);
    $finalResult[] = array_merge($testArray, array($sessionResult));
}
echo "<pre>";
print_r($finalResult);
echo "</pre>";

这将导致您的答案为

  

数组(

     
    
      

[0] =&gt;排列               (                   [0] =&gt; CSCI                   [1] =&gt; 5200                   [2] =&gt;软件                   [3] =&gt; 2013年的秋天               )

             

[1] =&gt;排列               (                   [0] =&gt; CSCI                   [1] =&gt; 5200                   [2] =&gt;设计                   [3] =&gt; 2014年秋天               )

    
         

  

我希望这就是你想要的。