Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP创建过程多维数组_Php_Mysql_For Loop_Multidimensional Array_Procedural - Fatal编程技术网

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

如何使用PHP创建过程多维数组,php,mysql,for-loop,multidimensional-array,procedural,Php,Mysql,For Loop,Multidimensional Array,Procedural,我是php的新手,我正在Unity c#中开发一个游戏,我正在尝试从mysql服务器发送和接收数据。我想我的语法有问题。我基本上有一个从我的c#脚本中发送的字符串,它保存了多艘飞船的统计数据。这两艘船由zzz分隔,zzz是由空间分隔的一系列属性。我希望能够在ships数组中设置stats数组。这就是我所拥有的,但它不起作用。谢谢 $shiparraytobesplit = $_POST["shipinventory"]; $ships = explode("zzz", $shiparrayto

我是php的新手,我正在Unity c#中开发一个游戏,我正在尝试从mysql服务器发送和接收数据。我想我的语法有问题。我基本上有一个从我的c#脚本中发送的字符串,它保存了多艘飞船的统计数据。这两艘船由zzz分隔,zzz是由空间分隔的一系列属性。我希望能够在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];
}
$shiparaytobesplit=$\u POST[“shipinventory”];
$ships=爆炸(“zzz”,$shiparraytobesplit);

对于($i=0;$i您有一些不需要的无关下标

如果数组中有一个额外的元素,则可能更容易将其取消设置,然后可以在整个数组上循环。
array\u 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);

为什么要从循环中的计数中减去1?您正在跳过每个数组的最后一个元素。
explode($“”,$tempship)
毫无意义。
$tempship
是一个数组,而不是字符串。您的意思是写
$tempship=$ships[$i];
?为什么不使用
foreach($tempship作为$tempship发货)
?什么是
$tempship[!i]
应该是什么意思?哈哈,我不太擅长组合字符串,所以我以某种方式结束了一个额外的迭代,它的结尾只有“”。您可能应该使用
内爆()
在组合字符串时。非常感谢!!这正是我在过去3天中一直在尝试的。我将阅读array\u map。我使用了您给出的第一个示例,效果很好!再次感谢