微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从键创建数组

如何解决从键创建数组

先谢谢你。有没有办法从键名创建多维数组。

$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'
);

谢谢!

解决方法

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

输入数组:

$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',),)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。