dongyou2279 2016-04-29 18:27
浏览 98
已采纳

从多维数组中获取数组并将值传递给PHP中的变量

This code is supposed to created a multidimensional array, shuffle it, select the first array, and pass the four values to four different variables called $common, $uncommon, $rare, and $superrare.

<?php

//create multidimentional array
$distribution = array
(
array(115, 50, 15, 0),
array(115, 49, 16, 0),
array(115, 48, 17, 0),
array(116, 49, 15, 0),
array(116, 48, 16, 0),
array(116, 47, 17, 0),
array(117, 48, 15, 0),
array(117, 47, 16, 0),
array(117, 46, 17, 0),
array(118, 47, 15, 0),
array(118, 46, 16, 0),
array(118, 45, 17, 0),
array(119, 46, 15, 0),
array(119, 45, 16, 0),
array(119, 44, 17, 0),
array(120, 45, 15, 0),
array(120, 44, 16, 0),
array(120, 43, 17, 0),
);

//shuffle the md-array
shuffle($distribution);

//select first array from $distribution
$slice[] = array_slice($distribution ,0, 1);

//create an array for key values
$cardrarity = array('common', 'uncommon', 'rare', 'superrare');

//combine $cardrarity and $slice
$cardraritycount = array_combine($cardrarity, $slice);

//create a variable for each value in 
foreach ($cardraritycount as $key => $value){
    $$key = $value;
    }
?>

When I view the contents of $slice it looks like this:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 120
                    [1] => 43
                    [2] => 17
                    [3] => 0
                )

        )

)

When I try and combine $slice with $cardrarity, I get no output when I try and echo the contents. I think my problem is when I'm doing the array slice. Any help would be appreciated.

  • 写回答

3条回答 默认 最新

  • douhoulei4706 2016-04-29 18:35
    关注

    array_slice($distribution, 0, 1) returns a multi-dimensional array. It's a 1-element array whose first element is the first element of $distribution. If you just want the first element of $distribution, use $distribution[0].

    To assign to multiple variables from an array, use an assignment to the list() function.

    So the whole thing should be:

    list($common, $uncommon, $rare, $superrare) = $distribution[0];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号