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


Find all objects with same property in array 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文件中,用于第三方电子邮件活动服务。

我对此很陌生,所以如果能提供任何帮助,我将不胜感激

感谢

试试这个:

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

最简单但可能最慢的方法是

$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
}