如何使用 PHP 创建程序多维数组
How do I create a procedural multi dimensional array with PHP
我是 php 的超级新手,我正在使用 Unity c# 开发游戏,我正在尝试从 mysql 服务器发送和接收数据。我想我的语法有问题。我基本上有一个从我的 c# 脚本发送的字符串,该脚本包含多艘船及其统计信息。飞船由 zzz 分隔,zzz 是一串由 space 分隔的统计数据。我希望能够在 ships 数组中设置 stats 数组。这就是我所拥有的,但它不起作用。谢谢!!
$shiparraytobesplit = $_POST["shipinventory"];
$ships = explode("zzz", $shiparraytobesplit);
for($i = 0; $i<count($ships)-1; $i++)
{
$tempship[$i] = $ships[$i];
$tempshipinfo = explode(" ", $tempship);
for($ii = 0; $ii<count($tempshipinfo[!i])-1; $ii++)
{
//$shipinfo[$tempship][] = $info . '_' . $tempshipinfo;
$shipinfo[$ii] = $tempshipinfo[$ii];
}
echo $shipinfo[1];
}
我已经尝试了一些变体,但我似乎无法让它与这个例子一起工作。我可能遗漏了一些简单的东西,因为我完全是 php 的菜鸟,而且是编程的新手。再次感谢
您有一些不需要的无关下标。
如果数组中有一个额外的元素,取消设置它可能更容易,然后您可以遍历整个数组。 array_map()
是一种从现有数组生成新数组的简单方法。
$shiparraytobesplit = $_POST["shipinventory"];
$ships = explode("zzz", $shiparraytobesplit);
unset($ships[count($ships)-1]);
$shipinfo = array_map(function($ship) {
$tempshipinfo = explode(" ", $ship);
unset($tempshipinfo[count($tempshipinfo)-1]);
return $tempshipinfo;
}, $ships);
print_r($shipinfo);
如果需要关联数组,可以在函数中进行。
$shiparraytobesplit = $_POST["shipinventory"];
$ships = explode("zzz", $shiparraytobesplit);
unset($ships[count($ships)-1]);
$shipinfo = array_map(function($ship) {
$tempshipinfo = explode(" ", $ship);
$ship_assoc = [
"id" => $tempshipinfo[0],
"name" => $tempshipinfo[1],
"username" => $tempshipinfo[2],
"hp" => $tempshipinfo[3]
];
return $ship_assoc;
}, $ships);
print_r($shipinfo);
我是 php 的超级新手,我正在使用 Unity c# 开发游戏,我正在尝试从 mysql 服务器发送和接收数据。我想我的语法有问题。我基本上有一个从我的 c# 脚本发送的字符串,该脚本包含多艘船及其统计信息。飞船由 zzz 分隔,zzz 是一串由 space 分隔的统计数据。我希望能够在 ships 数组中设置 stats 数组。这就是我所拥有的,但它不起作用。谢谢!!
$shiparraytobesplit = $_POST["shipinventory"];
$ships = explode("zzz", $shiparraytobesplit);
for($i = 0; $i<count($ships)-1; $i++)
{
$tempship[$i] = $ships[$i];
$tempshipinfo = explode(" ", $tempship);
for($ii = 0; $ii<count($tempshipinfo[!i])-1; $ii++)
{
//$shipinfo[$tempship][] = $info . '_' . $tempshipinfo;
$shipinfo[$ii] = $tempshipinfo[$ii];
}
echo $shipinfo[1];
}
我已经尝试了一些变体,但我似乎无法让它与这个例子一起工作。我可能遗漏了一些简单的东西,因为我完全是 php 的菜鸟,而且是编程的新手。再次感谢
您有一些不需要的无关下标。
如果数组中有一个额外的元素,取消设置它可能更容易,然后您可以遍历整个数组。 array_map()
是一种从现有数组生成新数组的简单方法。
$shiparraytobesplit = $_POST["shipinventory"];
$ships = explode("zzz", $shiparraytobesplit);
unset($ships[count($ships)-1]);
$shipinfo = array_map(function($ship) {
$tempshipinfo = explode(" ", $ship);
unset($tempshipinfo[count($tempshipinfo)-1]);
return $tempshipinfo;
}, $ships);
print_r($shipinfo);
如果需要关联数组,可以在函数中进行。
$shiparraytobesplit = $_POST["shipinventory"];
$ships = explode("zzz", $shiparraytobesplit);
unset($ships[count($ships)-1]);
$shipinfo = array_map(function($ship) {
$tempshipinfo = explode(" ", $ship);
$ship_assoc = [
"id" => $tempshipinfo[0],
"name" => $tempshipinfo[1],
"username" => $tempshipinfo[2],
"hp" => $tempshipinfo[3]
];
return $ship_assoc;
}, $ships);
print_r($shipinfo);