Заполнение при сортировке категорий не выполняется и не выполняется сортировка

Я пытаюсь закодировать средство просмотра каналов для моего сервера Teamspeak 3 (у которого есть родительские и дочерние каналы / категории, а также дочерние каналы для дочерних каналов и т. Д.), Но при попытке стилизовать его и добавить заполнение зависит от того, где он находится , он терпит неудачу и получается так:

как это выглядит

Хотя это должно выглядеть так: (очевидно, не так, как в стиле, но вы поняли мою точку зрения)

как это's supposed to look

Вот мой код:

private $_allChannels   = array();
private $_allClients    = array();

private function showChannels($parentID, $padding)
{
$response   = '';

foreach ($this->_allChannels as $channel) {
$channelParent  = $channel['pid'];
$channelID      = $channel['cid'];
$channelName    = $channel['name'];

if ($channelParent == $parentID) {
$response   .= '<span style="margin-left: ' . $padding*2 . 'em;">' . $channelName . '</span><br>';
$response   .= $this->showChannels($channelID, $padding++);
}
}

return $response;
}

public function index()
{
$teamspeakServer    = TeamSpeak3::factory("serverquery://user:pass@IP:QueryPort/?server_port=ServerPort");

$allClients         = $teamspeakServer->clientList(['client_type' => 0]);
$allChannels        = $teamspeakServer->channelList();

foreach ($allChannels as $channel) {
array_push($this->_allChannels, array('pid' => $channel['pid'], 'name' => $channel['channel_name'], 'cid' => $channel['cid']));
}

echo $this->showChannels(0, 0);
}

Я буду признателен за любую помощь, спасибо!

0

Решение

Читая код, вы просто постоянно добавляете к отступам. $padding++ увеличит значение и сохранит его обратно в $padding, В следующем цикле вы продолжаете добавлять к нему снова. Если бы мне пришлось угадывать, вы бы хотели, чтобы это было просто $padding+1 который добавил бы 1, но не перезаписывал $padding с новым $padding+1 значение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]