1. Порядок выполнения инструкций будет следующим:
var myjsonarr=new Array(); // 1
$.getJSON(url, function (data) {
myjsonarr=data; // 5
}); // 2
console.log("мой вывод"); // 3
console.log(myjsonarr); // 4
Поэтому выполнять "console.log(myjsonarr)" надо в другом событии (например, во время клика по ссылке, который выполняется уже после того, как была вызвана callback функция, переданная в getJSON).
2. Приведённый Вами кусок кода должен выводить в консоль не "undefined", а "[]".
3. Если Вы хотите сохранить переменную просто для дальнейшего использования, то Вы правильно сохраняете переменную, просто console.log слишком рано:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
// Присваивать массив данной переменной нужно лишь в случае,
// если ниже будет код "myjsonarr.push(data)" а не "myjsonarr = data"
var myjsonarr;
$.getJSON('getjson.php', function (data) {
myjsonarr = data;
});
// На данный момент новое значение ещё не присвоено переменной myjsonarr
console.log(myjsonarr);
$('a').click(function(){
// А когда пользователь, подождав немного, кликнет на ссылку,
// переменная уже будет содержать новое значение
console.log(myjsonarr);
});
});
</script>
</head>
<body>
<a href="#">Вывести объект</a>
</body>
</html>
Если же Вы хотите вызывать код построения таблицы и в вызове getJSON и из другого места, то можно поступить примерно следующим образом:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
function showRows(data)
{
$("#jsondata").html("");
$.each(data.planer, function(i, planer){
var newRow = "<tr>"
+ "<td class='td_id'>" + planer.idPlaner + "</td>"
+ "<td class='td_date'>" + planer.DatePlaner + "</td>"
+ "<td class='td_time'>" + planer.TimePlaner + "</td>"
+ "</tr>";
$(newRow).appendTo("#jsondata");
});
}
var myjsonarr;
$('a').click(function(){
if (myjsonarr)
showRows(myjsonarr);
else
{
$.getJSON('getjson.php', function(data){
myjsonarr = data;
showRows(myjsonarr);
});
}
});
});
</script>
</head>
<body>
<a href="#">Вывести объект</a>
<table id="jsondata"></table>
</body>
</html>