Zend framework 如何分割Zend\u Form\u元素\u MultiCheckbox中每行的值

Zend framework 如何分割Zend\u Form\u元素\u MultiCheckbox中每行的值,zend-framework,zend-form,Zend Framework,Zend Form,我有一个Zend\u Form\u元素\u MultiCheckbox,它的值如下: CSCI 5200软件【2013年秋季】 CSCI 5200设计【2014年秋季】 现在,我需要在将每个值插入数据库之前对其进行拆分。例如,第一个值应分为CSCI、5200、软件和2013年秋季 我试过这个: $course = $this->getValue(self::ELEMENT_COURSES); foreach ($course as $item) { foreach($item as

我有一个
Zend\u Form\u元素\u MultiCheckbox
,它的值如下:

  • CSCI 5200软件【2013年秋季】
  • CSCI 5200设计【2014年秋季】
  • 现在,我需要在将每个值插入数据库之前对其进行拆分。例如,第一个值应分为CSCI、5200、软件和2013年秋季

    我试过这个:

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

    但它不起作用。

    我不确定我是否理解,但因为还没有答案。:)

    以你的价值观​​可用(选项值)如果可能的话,您应该放置一个分隔符,然后使用边php

    您的问题仍然不清楚。但你想要的是,我认为,你想要将这些选项分解到数组中

    $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>";
    
    $course=$this->getValue(self::ELEMENT\u COURSES);
    $finalResult=array();
    $counter=0;
    foreach(课程为$value){
    $session=explode(“[”,$value);
    $sessionResult=rtrim($session[1],“]);
    $testArray=explode(“,$session[0]);
    未设置($testArray[计数($testArray)-1]);
    $finalResult[]=array_merge($testArray,array($sessionResult));
    }
    回声“;
    打印(最终结果);
    回声“;
    
    这将导致您的答案为

    排列(

    [0]=>阵列 ( [0]=>CSCI [1] => 5200 [2] =>软件 [3] =>2013年秋季 )

    [1] =>阵列 ( [0]=>CSCI [1] => 5200 [2] =>设计 [3] =>2014年秋季 )

    )

    我希望这就是你想要的