2016-02-26 2 views
3

Если у меня есть цикл, как это, и массив, который хранит информацию:Сохранение информации в массиве из петли Еогеасп PHP

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

Но прямо сейчас только один «человек» получит выход, даже если были два случая, когда

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

образец выход $ a-> getDetails():

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, используя вывод из массива, все в одном из сообщений SINGLE, как бы создать переменную для хранения всех данных? – Sudoscience

+0

@Sudoscience Вы должны задать новый вопрос для этого, мы должны сохранить SO clean :), также если вы согласны с этим ответом, вы должны проверить его и, возможно, увеличить его ... поделитесь ссылкой на свой вопрос, и я помогу вам –

+0

Готово! Вот новый вопрос. Ссылка: http://stackoverflow.com/questions/35650419/grab-data-from-array-and-combine-to-send-email-using-php – Sudoscience

Смежные вопросы