Dynamicaly生成PHP多维关联数组

时间:2016-07-19 23:24:30

标签: php arrays multidimensional-array associative-array

我的代码的简化版本如下,我最终会为人数分配值(这是来自sql表)。我想知道我的多维数组有什么问题。在我制作它时似乎所有东西都应该是关联的,但是吐出的数组并不是我想要的,因为第一个键不是距离的值,它只是一个递增的数字。如何创建一个允许我使用它作为键的数组? (请注意,在这个例子中,我不知道每个距离有多少距离,也不知道每个距离的人数。)

<?php
$speed = array("ran", "walked");
$distance = array(15,10,3,5,1,2);

foreach ($distance as $key) {
  foreach ($speed as $secondarykey) {
    $array[$key][$secondarykey] = "number of people";
  }
}

print_r(array_values($array));

unset($array);

?>

我回来的阵列看起来像这样:

Array
(
[0] => Array
    (
        [ran] => number of people
        [walked] => number of people
    )

[1] => Array
    (
        [ran] => number of people
        [walked] => number of people
    )

[2] => Array
    (
        [ran] => number of people
        [walked] => number of people
    )

[3] => Array
    (
        [ran] => number of people
        [walked] => number of people
    )

[4] => Array
    (
        [ran] => number of people
        [walked] => number of people
    )

[5] => Array
    (
        [ran] => number of people
        [walked] => number of people
    )

)

似乎有一些简单的东西,我只是没有了解多维数组的工作原理。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

变化:

print_r(array_values($array));

要:

print_r( $array );
  

array_values()返回数组中的所有值并对其进行索引   数字数组。   http://php.net/manual/en/function.array-values.php

答案 1 :(得分:0)

你没有得到你期望的输出,因为你没有打印整个数组,只是打印了值。变化

print_r(array_values($array));

要:

print_r($array);

答案 2 :(得分:0)

为什么不使用multidimentional数组以这种方式形成数据。

$speed = array("ran", "walked");
$distance = array(15,10,3,5,1,2);

<?php 
$distance =    array( 
                      array("ran", 15,10,3,5,1,2),
                      array("walked", 10,5,2,3,0,1)
               ); 
?>