【发布时间】:2020-10-24 17:48:37
【问题描述】:
所以,首先。我是一名 C# 程序员,所以我的 PHP 代码可能会受到你用 C# 编写的方式的强烈影响。无论如何,我正在尝试解决一个问题,即我有一个带有两个轴 x 和 y 的二维网格。用户输入,程序会告诉你你的新位置。
例如,如果用户输入是“>^”,则位置将为 1,1。
我还希望程序做的是告诉您您重访的第一个位置。所以,如果你从 0,0 -> 0,1 -> 0,0 -> 1,0 -> 1,1 开始。然后您重新访问的第一个位置是 0,0。
我的问题是我试图将我的 int 发送到一个函数,然后将它添加到一个数组中,如果数组包含该对象,则搜索该数组。但似乎数组只添加了一个值(?)
declare(strict_types=1);
<?php
$NewInput = ">>^^<>>";
$arr = str_split($NewInput, 1);
$x = 0;
$y = 0;
Directions($x, $y, $arr);
function Directions (int $x, int $y, $arr)
{
foreach ($arr as $item)
{
if ($item == '^')
{
$y += 1;
}
elseif ($item == 'v')
{
$y -= 1;
}
elseif ($item == '>')
{
$x += 1;
}
elseif ($item == '<')
{
$x -= 1;
}
Previous($x,$y);
}
}
function Previous (string $x, string $y)
{
$Location = $x . '.' . $y;
echo "<br>";
$NewArray = array();
$NewArray[] = $Location;
$ReVisited = "";
if ($ReVisited == "")
{
if (array_search($Location, $NewArray))
{
$ReVisited = $Location;
echo $ReVisited;
}
}
echo $Location;
}
?>
我做错了什么? 另外,如果您看到可以改进的代码的整体内容,请告诉我。 感谢任何提示或答案!
【问题讨论】:
-
能否请您提取并提供minimal reproducible example?另外,程序在什么时候没有按预期运行?而你期待什么呢?作为这里的新用户,也可以使用tour 并阅读How to Ask。作为新的 PHP 程序员,请查看 PSR 文档,尤其是有关命名和格式的编码指南。您将更轻松地与他人合作。
-
我的错。谢天谢地,我没有因为我的坏问题而得到帮助。将来会更仔细地构建我的问题。