-1

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

我有一个人员数组

    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' 

迭代persons数组中的每个人以找到jobs数组中与该特定人具有相同区域的所有工作的最佳方法是什么?

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

我对此的总体目标是能够将每个潜在客户与同一地区的最多 6 个工作联系起来,然后将此数据输出到 CSV 文件中,以用于第三方电子邮件活动服务。

我对此很陌生,因此将不胜感激

谢谢

4

2 回答 2

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
}
于 2013-07-10T14:13:13.957 回答
0

尝试这个:

$persons_region = 'Cheshire';

$found_jobs = array();
foreach ($jobs as $job) {
    if ($job['region'] == $persons_region) {
        $found_jobs[] = $job;
    }
}
于 2013-07-10T13:58:20.617 回答