Удалить дубликаты из Echoing в PHP Foreach - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь получить заголовки ответа с помощью PHP.

Вот мой текущий код:

foreach ($headers as $name => $value) {
  foreach ($value as $key => $moreinfo) {
    echo "$name === $moreinfo \n";
  }
}

Я просто не хочу, чтобы их было несколько $nameзаписи.

Например, в настоящее время я вижу, что это отражается:

date === Sun, 03 Nov 2019 03:03:11 GMT 
date === Sun, 03 Nov 2019 03:03:11 GMT 
via === 1.1 varnish 
via === 1.1 varnish 
connection === keep-alive 
x-served-by === cache-bur17530-BUR 
x-served-by === cache-bur17548-BUR 

Я бы хотел, чтобы оно просто показывало:

date === Sun, 03 Nov 2019 03:03:11 GMT 
via === 1.1 varnish 
connection === keep-alive 
x-served-by === cache-bur17548-BUR 

Есть личто-нибудь, что можно просто изменить в foreach, чтобы это произошло?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Это даст вам все поля с нулевым идентификатором (фиксированное значение):

foreach ($headers as $name => $value) {
    echo "{$name} === {$headers[$name][0]} \n"; // or $value[0]
}

Добавление простого break приведет к выводу одного поля имени max, заканчивая цикл после одного прохода.

foreach ($headers as $name => $value) {
  foreach ($value as $key => $moreinfo) {
    echo "$name === $moreinfo \n";
    break;
  }
}

Вы можете сохранить список того, что вы уже показали, и проверить его.

0 голосов
/ 03 ноября 2019

Вы можете использовать встроенный в массив метод php array_unique (), который принимает два параметра: один - массив, который вы хотите отфильтровать уникальные значения, следующий параметр - опция сортировки. Проверьте документацию для более широкого использования php array unique

...