Вы хотите получить все элементы, которые не ''
(при условии, пустая строка), 0
или 1
(при условии, что здесь целые числа):
$playerNames = array_diff($array, array('', 0, 1));
Если вы более точно знаете, что формат массива на самом деле, вы также можете создать некоторый маленький "парсер":
$playerSize = 8;
$playerFields = array('_1', 'name', '_3', '_4', '_5', '_6', '_7', '_8');
$players = array_chunk($array, $playerSize);
foreach($players as &$player)
{
$player = (object) array_combine($playerFields, $player);
}
unset($player);
Это парсит $array
в другой массив $players
, который содержит один объект на каждыйигрок.Каждый объект теперь имеет свойство name
:
printf("%d Player(s):\n", count($players));
foreach($players as $i => $player)
{
printf("#%d: %s\n", $player->name);
}