PHP foreach не может отображать значения - PullRequest
0 голосов
/ 25 января 2019

Я уверен, что мне не хватает чего-то такого простого, но ниже приведен цикл foreach, и если я сделаю var_dump со значением $ value, я увижу все:

foreach ($vals as $key => $value) {  
  var_dump($value); 
}

Ниже приведена частьof var_dump:

array (size=4)
  'tag' => string 'MAILSERVICE' (length=11)
  'type' => string 'complete' (length=8)
  'level' => int 4
  'value' => string 'Priority Mail Express 2-Day<sup>™</sup>' (length=57)

array (size=4)
  'tag' => string 'RATE' (length=4)
  'type' => string 'complete' (length=8)
  'level' => int 4
  'value' => string '61.15' (length=5)

array (size=3)
  'tag' => string 'POSTAGE' (length=7)
  'type' => string 'close' (length=5)
  'level' => int 3

array (size=4)
  'tag' => string 'POSTAGE' (length=7)
  'type' => string 'open' (length=4)
  'level' => int 3
  'attributes' => 
    array (size=1)
      'CLASSID' => string '2' (length=1)

array (size=4)
  'tag' => string 'MAILSERVICE' (length=11)
  'type' => string 'complete' (length=8)
  'level' => int 4
  'value' => string 'Priority Mail Express 2-Day<sup>™</sup> Hold For Pickup' (length=73)

array (size=4)
  'tag' => string 'RATE' (length=4)
  'type' => string 'complete' (length=8)
  'level' => int 4
  'value' => string '61.15' (length=5)

Увидев эти результаты, я изменил цикл foreach на следующий, думая, что я собираюсь использовать только почтовый сервис вместе с его тарифом, но вместо этого просто пустую белую страницу:

foreach ($vals as $key => $value) {  
  if ($value[$key]['tag'] == "MAILSERVICE") {
    echo $value[$key]['value'];
  } 
  if ($value[$key]['tag'] == "RATE") {
    echo $value[$key]['value'];
  } 
}

Использование error_reporting(E_ALL); ini_set('display_errors', 1);

Показывает неопределенный индекс, но эти предупреждения те же, если я просто делаю var_dump ($ value)

Я знаю, что имеетчто-то простое, чего мне не хватает, и заранее спасибо

Ответы [ 2 ]

0 голосов
/ 25 января 2019

$value - это массив, состоящий из 4 элементов, которые вы указали, неопределенный индекс, вероятно, равен $value[$key], я полагаю, вместо

$value[$key]['value']

вы должны использовать

$value['value']
0 голосов
/ 25 января 2019

Спасибо @Dharman за то, что показали мне свет:

foreach ($vals as $key => $value) {  
  if ($vals[$key]['tag'] == "MAILSERVICE") {
    echo $vals[$key]['value'];
  } 
  if ($vals[$key]['tag'] == "RATE") {
    echo $vals[$key]['value'];
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...