CAKEPHP:如何比较两个数组之间的公共项

CAKEPHP:如何比较两个数组之间的公共项,cakephp,cakephp-2.1,Cakephp,Cakephp 2.1,如何比较两个数组并在第三个数组中列出常用项。我想打印第三个数组。请帮帮我。我的结果分为两个列表 <?php $appsubjects = $this->ProgrammeChoice-> ApplicantsDetail->ApplicantAlevelQualification-> find('list',array('fields'=> array('subject_code'), 'conditions'=>ar

如何比较两个数组并在第三个数组中列出常用项。我想打印第三个数组。请帮帮我。我的结果分为两个列表

<?php 

    $appsubjects = $this->ProgrammeChoice->
    ApplicantsDetail->ApplicantAlevelQualification->
    find('list',array('fields'=> array('subject_code'),
    'conditions'=>array('ApplicantAlevelQualification.applicants_detail_id'=>$app_id)));

     $progrequirements[] =
          $this->ProgrammeChoice->Programme->ProgrammeRequirementsSubject->
    find('all',array('fields'= >        array('programme_code','subject_code','programme_name','compulsory'),
    'conditions'=>
    array('subject_code'=>$s_code,'compulsory'=>'true')));

?>

所以现在我不知道如何获得第三个项目列表,其中数组(1)和数组(2)的
subject\u code
是相同的,其中
employment
是真的


我的课程的本质是我希望申请者进入他们的学科,申请不同的学位课程。然后每个学位都有必修科目(数组(2)),有些是必修科目。因此,我的课程应该能够列出与所选科目相匹配的所有学位课程。我希望你能理解我的问题。请帮我一下。如果我明白了,我想你做错了。进行两次数据库查询,然后查找常用项。直接在查询中执行如何?:)有什么好的理由不这样做吗


编辑:或在用户提交内容后进行第三次查询。一些阿贾克斯和沃拉

我不想讨论您为什么要比较数组。但事实上,数组操作技能总是可以派上用场的

CakePHP拥有这个类。查找数组中的差异可能需要函数。它“计算一个集合和一个数组、两个集合或两个数组之间的差值”。以下示例摘自CakePHP 2.0手册:

    <?php
    $a = array(
        0 => array('name' => 'main'),
        1 => array('name' => 'about')
    );
    $b = array(
        0 => array('name' => 'main'),
        1 => array('name' => 'about'),
        2 => array('name' => 'contact')
    );
    
    $result = Set::diff($a, $b);
    /* $result now looks like:
        Array
        (
            [2] => Array
                (
                    [name] => contact
                )
        )
    */
    $result = Set::diff($a, array());
    /* $result now looks like:
        Array
        (
            [0] => Array
                (
                    [name] => main
                )
            [1] => Array
                (
                    [name] => about
                )
        )
    */
    $result = Set::diff(array(), $b);
    /* $result now looks like:
        Array
        (
            [0] => Array
                (
                    [name] => main
                )
            [1] => Array
                (
                    [name] => about
                )
            [2] => Array
                (
                    [name] => contact
                )
        )
    */
    
    $b = array(
        0 => array('name' => 'me'),
        1 => array('name' => 'about')
    );
    
    $result = Set::diff($a, $b);
    /* $result now looks like:
        Array
        (
            [0] => Array
                (
                    [name] => main
                )
        )
    */
?>

Set还有其他功能强大的实用程序,我建议你去看看。
当需要在DB层外部进行自定义数据操作时,我一直在使用它。

您能发布一些示例数组,说明您拥有的以及您希望获得的数据吗?听起来像是一份关于
array\u intersect
$appsubjects=$this->ProgrammeChoice->applicationsdeail->applicationlevelqualification->find('list',array('fields'=>array('subject\u code'),'conditions'=>array('applicationlevelqualification.applicators\u detail\u id'=>$app\u id'))的工作$progrequirements[]=$this->programmemechoice->programmerequirementssObject->find('all',array('fields'=>array('program_code','subject_code','programmeru code','programmeru name','requirement'),'conditions'=>array('subject_code'=>$s_code','requirement'=>true');请将其添加到您的帖子中,而不是在评论中!并格式化代码,使其可读。最后,这些是find调用,而不是数组结果。第一个是我的第一个数组,第二个是第二个数组。现在我想要第三个数组,它的subject_代码是相同的,强制为true。