繁体   English   中英

如何使用 PHP 创建程序多维数组

[英]How do I create a procedural multi dimensional array with PHP

我是 php 的超级新手,我正在 Unity c# 中开发游戏,我正在尝试从 mysql 服务器发送和接收数据。 我想我的语法有问题。 我基本上有一个从我的 c# 脚本发送的字符串,该脚本包含多艘船及其统计数据。 船只由 zzz 分隔,zzz 是由空格分隔的一串统计数据。 我希望能够在 ship 数组中设置 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);

如果您想要关联的 arrays,您可以在 function 中执行此操作。

$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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM