【问题标题】:Create Array From Key从键创建数组
【发布时间】:2021-07-08 18:58:50
【问题描述】:

提前谢谢你。有什么方法可以从键名创建多维数组。

$array = array(
    'brand/name' => 'BRAND_NAME',
    'brand/model' => 'MODEL_NO',
    'brand/inv/qty' => '20',
    'brand/inv/cost' => '30',
    'wh' => 'NY',
    'brand/inv/sales' => '40'
);

转换成这个数组。

$array = array(
    'brand' => array(
        'name' => 'BRAND_NAME',
        'model' => 'MODEL_NO',
        'inv' => array(
            'qty' => 20,
            'cost' => 30,
            'sales' => 40,
        )
    ),
    'wh' => 'NY'
);

谢谢!

【问题讨论】:

标签: php arrays algorithm data-structures


【解决方案1】:

试试我的代码(我使用引用运算符“&”来获取连续的内部数组):

输入数组:

$array = array(
        'brand/name' => 'BRAND_NAME',
        'brand/model' => 'MODEL_NO',
        'brand/inv/qty' => '20',
        'brand/inv/cost' => '30',
        'wh' => 'NY',
        'brand/inv/sales' => '40'
);

php代码:

<?php

$resultArray = array();

foreach($array as $path => $element) {
    $pathArray = explode("/", $path);

    $auxRef = &$resultArray;

    foreach($pathArray as $pathPart) {
        if(! array_key_exists($pathPart, $auxRef)) {
            $auxRef[$pathPart] = array();
        }

        $auxRef = &$auxRef[$pathPart];
    }

    $auxRef = $element;
    unset($auxRef);
}
?>

结果数组:

array ( 'brand' => array ( 'name' => 'BRAND_NAME', 'model' => 'MODEL_NO', 'inv' => array ( 'qty' => '20', 'cost' => '30', 'sales' => '40', ), ), 'wh' => 'NY', )

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 2012-03-27
    • 2016-12-31
    • 1970-01-01
    • 2015-03-22
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多