#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-> долгота)));