информация в массиве выходит пустой

#php #arrays #parsing

#php #массивы #синтаксический анализ

Вопрос:

Кажется, у меня возникла проблема, и я немного не понимаю, как я могу ее исправить. Я пытаюсь отобразить некоторые данные из массива в другой массив, но проблема в том, что без использования print_r или echo информация возвращается пустой, я не знаю, почему она продолжает это делать. Это то, что у меня есть, и я знаю, что это должно работать, но это просто не так.

 <?php   

$number = 0;
foreach($picture_info as $path => $picture_location){ ?>

<?php $mymap = new Mappress_Map(array("width" => 490, "height" => 290));

$mypoi_1 = new Mappress_Poi(array("title" => "$picture_location->name", "body" => "$picture_location->city, $picture_location->state" ,"point" => array("lat" => "$picture_location->latitude", "lng" => "$picture_location->longitude"))); 
  

Проблема здесь, где написано $picture_location-> широта и долгота как вы можете видеть, это массив, и информация находится в массиве, но результат получается пустым, однако, если я использую echo $picture_location-> широта или print_r, он покажет результаты, однако я не могу сделать это внутримассив, потому что его недопустимое кодирование

 $mymap->pois = array($mypoi_1);

echo $mymap->display(array("directions"=>"none")); ?>

<?php echo "<div class='search'>reviews for amp;nbsp;<strong>".urldecode($loc)."</strong> area</div>"; ?>

<?php $number  ; if($number == 1) break; ?>

<?php } ?>
  

Я надеюсь, что я описываю это, и любая помощь в том, что я могу сделать, приветствуется

Комментарии:

1. Можете ли вы опубликовать пример $picture_info ?

2. это довольно долго, поэтому я разместил его в pastebin pastebin.com/2W1RWyMe

Ответ №1:

Нигде во всем этом коде вы на самом деле ничего не присваиваете $loc , поэтому вы выводите пустой var.

Основные синтаксические проблемы с вашим кодом:

1 — Вы часто переходите в «режим php» и выходите из него без уважительной причины. Нет смысла делать a ?> , если вы просто собираетесь иметь a <?php в следующей строке.

2 — Вы бесполезно используете " " строки в кавычках, просто для передачи переменной. например

 array("title" => "$picture_location->name"
  

должно быть просто:

 array("title" => $picture_location->name
  

другими словами:

 $x = "Hello"
$y = "$x";  // useless use of double-quotes
$y = $x; // proper usage
  

Комментарии:

1. Я пробовал ваш путь до того, как опубликовал здесь, и это не проблема, почему не отображается, если я не повторяю это. пожалуйста, проверьте файл pastebin, размещенный выше

2. Что именно не отображается? что echo $mymap->display(array("directions"=>"none")); ? Вы, вероятно, захотите сделать $loc = $mymap->display(array("directions"=>"none")); , как я сказал выше: $loc нигде не определен в вашем коде, КРОМЕ того места, где вы пытаетесь его вывести.

3. это проблема, с которой у меня больше нигде нет — point» => array(«широта» => $ picture_location-> широта, «lng» => $ picture_location-> долгота)));