在数组PHP中查找具有相同属性的所有对象

时间:2013-07-10 13:51:09

标签: php

我在测试一个阵列与另一个阵列时遇到了一些困难。

我有个人数组

    0 => 
     object(Prospect)[196]
     private 'firstname' => string 'Jane' 
     private 'surname' => string 'Doe' 
     private 'email' => string 'test@test.com' 
     private 'postcode' => string 'LS' 
     public 'region' => string 'Yorkshire' 
   1 => 
     object(Prospect)[197]
     private 'firstname' => string 'John' 
     private 'surname' => string 'Doe' 
     private 'email' => string 'test1@test.com' 
     private 'postcode' => string 'CH' 
     public 'region' => string 'Cheshire' 

和一个作业数组

    0 => 
      object(Job)[2]
      private 'title' => string 'Job 1' 
      private 'ref' => string '0001' 
      private 'postcode' => string 'CH' 
      public 'region' => string 'Cheshire' 
      private 'wage' => string '£250' 
    1 => 
      object(Job)[3]
      private 'title' => string 'Job 2' 
      private 'ref' => string '0002' 
      private 'postcode' => string 'CH'
      public 'region' => string 'Cheshire'
      private 'wage' => string '£200.00' 

迭代人员阵列中的每个人以查找作业数组中具有该特定人员相同区域的所有作业的最佳方法是什么?

编辑:我正在使用的数据在潜在客户方面和工作方面都很大,上面只是我正在使用的数据的一个示例。

我的总体目标是能够将每个潜在客户与同一地区最多6个职位相关联,然后将这些数据输出到CSV文件中,以便在第三方电子邮件广告系列服务中使用。

我对此很陌生,所以感谢任何帮助

由于

2 个答案:

答案 0 :(得分:0)

试试这个:

$persons_region = 'Cheshire';

$found_jobs = array();
foreach ($jobs as $job) {
    if ($job['region'] == $persons_region) {
        $found_jobs[] = $job;
    }
}

答案 1 :(得分:0)

最简单但也许最慢的方式是

$job_ids = array();
foreach($persons_array as $person) {
  foreach ($jobs_array as $id=>$job) {
    if ($person->region == $job->region) $job_ids[] = $id;
  }
}

所以你可以做到

foreach ($job_ids as $id) {
  // whatever using $id
}