Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我有两个数组,一个包含所有可能的选择选项,另一个包含应为';红色';我如何做到这一点?_Php_Jquery_Cakephp - Fatal编程技术网

Php 我有两个数组,一个包含所有可能的选择选项,另一个包含应为';红色';我如何做到这一点?

Php 我有两个数组,一个包含所有可能的选择选项,另一个包含应为';红色';我如何做到这一点?,php,jquery,cakephp,Php,Jquery,Cakephp,控制员: $params = array( 'fields' => array('Course.id', 'Course.weekstart'), 'conditions' => array( 'Course.program_id' => $program_id ) ); $paramsflagged = array( 'conditions' => a

控制员:

    $params = array(
        'fields' => array('Course.id', 'Course.weekstart'),
        'conditions' => array(
            'Course.program_id' => $program_id
        )
    );    
    $paramsflagged = array(
        'conditions' => array(
            'Course.course_full' => 1,
            'Course.program_id'  => $program_id         
         ),
         'fields' => array('Course.id', 'Course.weekstart')
    );
    $flaggedcourses = $this->Course->find('list', $paramsflagged);
    $courses = $this->Course->find('list', $params);
    $this->set('courses', $courses);
    $this->set('flaggedcourses', $flaggedcourses);
为所有选项生成选择列表的视图(使用数组):

FlaggedCourses数组=>

Array
(
   [2836] => 4 16:40:00
   [2835] => 3 13:20:00
)
Array
(
    [2835] => 3 13:20:00
)

那么,在该视图中创建一个新的select选项数组的最佳方法是什么,它可以向flaggedcourses数组中的选项“添加类”?

使用多维数组

Array
(
   [2836] => array('value'=> '4 16:40:00', 'flagged' => '')
   [2835] => array('value'=> '3 13:20:00', 'flagged' => 'selected')
)

<select>
<?php foreach ($courses as $key => $course): ?>   
<option id="'.$key.'" selected="'.$course['flagged'].'">        
    <?php echo $course['value']; ?>
</option>
<?php endforeach;?> 
</select>
数组
(
[2836]=>数组('value'=>'416:40:00','flagged'=>'')
[2835]=>数组('value'=>'3 13:20:00','flagged'=>'selected')
)


试试这个

foreach ($courses as $key=>$course):
    if (isset($flaggedcourses[$key])):
        $color = ' style="color:red"';
    else:
        $color = '';
    endif;

    echo <<<option
    <option id="{$key}"{$color}>{$course}</option>
    option;

endforeach;
foreach($key=>$course的课程):
如果(isset($flaggedcourses[$key]):
$color='style=“color:red”';
其他:
$color='';
endif;

回声在哪里?我只是复制了OP的代码并添加了if语句。我很确定那里没有语法错误。一旦代码块使用了替代的PHP语法,所有的控制语句也必须使用相同的语法。这意味着
if():。。。endif当然你一定是新的PHP或使用一些奇怪的版本的规则,我不知道,但你错了。我向您保证,我的代码片段在语法上没有任何错误。我想您可能指的是同一个控制结构。。例如:
if():/**code*/}
将抛出错误。同样地,你也会:
if(){/**code*/endif;
。如果这就是你的意思,那么你是对的。否则我是对的。
<select>
<?php foreach ($courses as $key=>$course): ?> 
    <?php
        if (array_key_exists($key, $flaggedcourses)) {
            $class = ' class="flagged"';
        } else {
            $class = '';
        }
    ?>  
    <option id="<?= $key;?>"<?= $class; ?>>
        <?php echo $course; ?>
    </option>
<?php endforeach;?> 
</select>
foreach ($courses as $key=>$course):
    if (isset($flaggedcourses[$key])):
        $color = ' style="color:red"';
    else:
        $color = '';
    endif;

    echo <<<option
    <option id="{$key}"{$color}>{$course}</option>
    option;

endforeach;