Если Вы хотите использовать символ в качестве маленького целого числа, самый безопасный способ сделать это с int8_t
и uint8_t
типы.
Почему бы вам не сделать
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";
}
Просто для развлечения. Если вы действительно хотите избежать циклов, попробуйте следующее:
// 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";
});
Если ваша проблема в том, что у вас один и тот же автор для нескольких статей и, следовательно, вы получаете результат более одного раза, самым простым решением является создание массива авторов вместо того, чтобы сразу выводить их.
Когда у вас есть массив всех авторов, которых вы уже обработали, вы можете легко сравнить, есть ли этот автор там или нет.