2016-02-26 174 views
3

如果我有一个这样的循环,以及存储信息的数组:存储信息

$itemArray = array(); 
foreach ($a->getDetails() as $b) 
{ 
    if ($b->getValue1() !== $b->getValue2()) 
    { 
     if (!array_key_exists($b->getId(), $itemArray)) 
     { 
      $itemArray[$b->getId()] = array('name' => $b->getName(), 'age' => $b->getAge()); 
     } 

    $personName = $itemArray[$b->getId()]['name']; 
    $personAge = $itemArray[$b->getId()]['age']; 

    $content = ('Name is: ' . $personName . ', age is: ' . $personAge); 
    } 
} 

眼下这只是输出了$的单值的单个“人” b这是不匹配的,我将如何去存储$ b的多个值不匹配?

我基本上希望输出是沿着线的东西:

名称是:戴夫,年龄为30

名称是:约翰,年龄为40

但现在只有一个“人”会得到输出,即使有两个实例,其中的$ A-> getDetails()

$b->getValue1() !== $b->getValue2() 

输出示例:

array(1) { 
[0]=> 
    object(PersonDetail)#322 (41) { 
["collItemTemplateFieldPersonValues":protected]=> 
NULL 
["id":protected]=> 
int(2375434) 
["person_id":protected]=> 
int(2184229) 
["person_details_id":protected]=> 
int(4563874) 
["person_details_type_id":protected]=> 
NULL 
["name":protected]=> 
string(4) "Test" 
["person_namecode":protected]=> 
string(9) "PERSON_ID" 
["person_age":protected]=> 
int(30) 
+0

可以粘贴“$ A-> getDetails()”输入 –

+0

您可以发布所有的对象呢? – mitkosoft

+0

我发布了一个小样本$ a-> getDetails() – Sudoscience

回答

1

你已经储存了所有你需要的数组,你刚才已经遍历:)

$itemArray = array(); 
foreach ($a->getDetails() as $b) { 
    if ($b->getValue1() !== $b->getValue2()) { 
     if (!array_key_exists($b->getId(), $itemArray)) { 
      $itemArray[$b->getId()] = array('name' => $b->getName(), 'age' => $b->getAge()); 
     } 
    } 
} 
if (count($itemArray) > 0) { 
    foreach($itemArray as $item) { 
     $personName = $item['name']; 
     $personAge = $item['age'] ; 
     $content = ('Name is: ' . $personName . ', age is: ' . $personAge); 
    } 
} 
+0

这很有道理谢谢!如果我想说......在PHP中使用数组的输出发送一封电子邮件,所有内容都在一封单一电子邮件中,我将如何创建一个变量来保存所有数据? – Sudoscience

+0

@Sudoscience你必须为此提出一个新问题,我们必须保持清洁:),如果你接受这个答案,你必须检查它,并选择upvote它...与我分享你的问题的链接,我会帮你 –

+0

完成!这里是新的问题链接:http://stackoverflow.com/questions/35650419/grab-data-from-array-and-combine-to-send-email-using-php – Sudoscience