【问题标题】:How to Create a Multi Dimensional Array from arrays using loops or other methods in PHP如何使用 PHP 中的循环或其他方法从数组创建多维数组
【发布时间】:2020-09-10 22:18:10
【问题描述】:

我有 3 个数组,$nos$names$marks 如下

$nos = array("101","201","301","401");
$names = array("Jhon","Mike","Thomas","Stella");
$marks = array("65","35","25","45");

我想从这 3 个数组中创建一个多维数组,如下所示

$students = array(
    'Jhon' => [
        'number' => 101,
        'marks' => 65,
    ],
    'Mike' => [
        'number' => 201,
        'question' => 35,
    ],
   'Thomas' => [
        'number' => 301,
        'question' => 25,
    ],
   'Stella' => [
        'number' => 401,
        'question' => 45,
    ]
);

如何在 PHP 中使用循环或任何其他方法来做到这一点,超过 3 的数组大小不固定。

我尝试过的代码

for ($i=0; $i<sizeof($nos); $i++){ 
    $students = array( 
        $names[0] => [ 
            'number' => $nos[0], 
            'marks' => $marks[0], 
        ], 
    ); 
}
print_r($students);

【问题讨论】:

  • 您尝试过任何代码吗?你提到使用循环 - 这是一个好的开始,但你需要尝试一些东西。
  • 也试过这个for ($i=0; $i&lt;sizeof($nos); $i++){ $students = array( $names[$i] =&gt; [ 'number' =&gt; $nos[$i], 'marks' =&gt; $marks[$i], ], ); } print_r($students); 输出是:Array ( [Stella] =&gt; Array ( [number] =&gt; 401 [marks] =&gt; 45 ) )

标签: php arrays loops dynamic


【解决方案1】:

这里的主要区别是将结果添加到学生数组的方式。在您的代码中,您继续将数据添加到同一元素(使用与您始终使用 [0] 相同的数据。这里使用名称作为索引添加数据,并且所有数组都使用循环索引引用($i )...

$students = [];
for ($i=0; $i<sizeof($nos); $i++){
    $students[$names[$i]] = [ 'number' => $nos[$i],
        'marks' => $marks[$i]];
}
print_r($students);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    相关资源
    最近更新 更多