You could extract the IDs of the already-chosen courses and use those
to exclude from the other results.

// get registered courses
$registered_data = $this->YourModel->find(...);

$keys = Set::extract(
        '{n}.Listing.id',
        $registered_data
);

// get available courses
$available_data = $this->Listing->find(
        'all',
        array(
                'conditions' => array(
                        'NOT' => array(
                                'Listing.id' => $keys
                        )
                )
        )
);

This isn't a very efficient query, though.

Depending on how your first data array is structured, you may have to
use 'Listing.{n}.id' instead.

On Thu, Mar 14, 2013 at 4:28 PM, Joseph zhu <zhubujun...@gmail.com> wrote:
> In fact, the question is that, I am responsible for managing a education
> website, the website will supply courses for each quarter,
> the courses supplied for each quarter maybe same, but the students won't be
> allowed to choose the courses which the students have choose before.
> Now I can get the courses the students have chosen before.
> foreach($registered as $value){
>      echo  $value['Listing']['title'];
>    }
>
> and here is the course supplied for the current quarter.
> foreach($courseListings as $listing){
>   echo  $listing['Listing']['title'];
>    }
> so if some courses were chosen by the student before, he won't be allowed to
> choose the course for the current quarter.
> Below is the form for courses register.
>                                 <tr>
>   <td width="24%">Enroll in course :</td>
>   <td width="42%">
>   <?php echo $form->create('Registration',array('action'=>'index')); ?>
> <?php echo $form->input('listing',array('label'=>false,'div'=>false)); ?>
> </td>
>   <td width="34%"><?php echo $form->end('Enrol') ?></td>
> </tr>
> I tried but didn't  figure it out.
> Do you have some good ideas?
> Thank you so much.
>
> On Thu, Mar 14, 2013 at 9:22 AM, Joseph zhu <zhubujun...@gmail.com> wrote:
>>
>> two array:
>> one is: foreach($courseListings as $listing){
>>   echo  $listing['Listing']['title'];
>>    }
>> another one:
>> foreach($registered as $value){
>>     echo  $value['Listing']['title'];
>>    }
>> How to campare them and get the same elements.
>> Thanks a lot.
>>
>> --
>> Like Us on FaceBook https://www.facebook.com/CakePHP
>> Find us on Twitter http://twitter.com/CakePHP
>>
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "CakePHP" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/cake-php/gqIqXb6j_EU/unsubscribe?hl=en.
>> To unsubscribe from this group and all its topics, send an email to
>> cake-php+unsubscr...@googlegroups.com.
>>
>> To post to this group, send email to cake-php@googlegroups.com.
>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>
>
>
>
> --
> God bless you!
> Joseph
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to cake-php+unsubscr...@googlegroups.com.
> To post to this group, send email to cake-php@googlegroups.com.
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to