Вложенный foreach ()

Если Вы хотите использовать символ в качестве маленького целого числа, самый безопасный способ сделать это с int8_t и uint8_t типы.

13
задан Nicholas Kreidberg 10 August 2009 в 22:56
поделиться

4 ответа

Почему бы вам не сделать

foreach($apubs as $apub) {
  $sauthors = '';
  $stitle = $apub['sarticle'];
  foreach($apub['authors'] as $author) {
    $sauthors .= $author['slast'].", ".$author['sfirst']."; ";
  }

  echo "$sauthors<br />\n$stitle<br />\n";
}
10
ответ дан 1 December 2019 в 23:32
поделиться

Просто для развлечения. Если вы действительно хотите избежать циклов, попробуйте следующее:

// Pre PHP 5.3:

function cb2($e)
{
    return $e['slast'] . ', ' . $e['sfirst'];
}

function cb1($e)
{
    $authors = array_map('cb2', $e['authors']);
    echo implode('; ', $authors) . ":<br />\n" . $e['sarticle'] . "<br />\n";
}

array_walk($data, 'cb1');



// PHP 5.3 (untested):

array_walk($data, function($e)
{
    $authors = array_map(function($e)
    {
        return $e['slast'] . ', ' . $e['sfirst'];
    },
    $e['authors']);

    echo implode('; ', $authors) . ":<br />\n" . $e['sarticle'] . "<br />\n";
});
4
ответ дан 1 December 2019 в 23:32
поделиться

Если ваша проблема в том, что у вас один и тот же автор для нескольких статей и, следовательно, вы получаете результат более одного раза, самым простым решением является создание массива авторов вместо того, чтобы сразу выводить их.

Когда у вас есть массив всех авторов, которых вы уже обработали, вы можете легко сравнить, есть ли этот автор там или нет.

3
ответ дан 1 December 2019 в 23:32
поделиться

Взгляните на этот

1
ответ дан 1 December 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: