首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建基于字符串前缀的子数组?

如何创建基于字符串前缀的子数组?
EN

Stack Overflow用户
提问于 2011-11-17 22:10:12
回答 2查看 427关注 0票数 0

我有一个一维数组(一个例子):

代码语言:javascript
运行
复制
{
    ["Pagamento_valor_liquido"]=> string(3) "111"
    ["Pagamento_valor_bruto"]=> string(3) "222"
    ["TipoPagamento_id"]=> string(3) "333"
    ["TipoPagamento_descricao"]=> string(3) "444"
}

我需要帮助将其转换为两个子数组:

代码语言:javascript
运行
复制
{
    ["Pagamento"]=> array(2) {
        ["valor_liquido"]=> string(3) "111"
        ["valor_bruto"]=> string(3) "222"
    }
    ["TipoPagamento"]=> array(2) {
        ["id"]=> string(3) "333"
        ["valor_bruto"]=> string(3) "444"
    }
}

如何以通用的方式使用此模式(Father_son_name)?

谢谢,Celso

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-17 22:19:15

代码语言:javascript
运行
复制
$array = array("Pagamento_valor_liquido" => "111", "Pagamento_valor_bruto" => "222", "TipoPagamento_id" => "333", "TipoPagamento_descricao" => "444");

$result = array();
foreach ($array as $k => $v) {
    $name = explode('_', $k);
    $newkey = array_shift($name);
    $newname = implode('_', $name);
    $result[$newkey][$newname] = $v;
}
var_export($result);

在行动中观看它here

对你来说似乎是很普通的。

票数 1
EN

Stack Overflow用户

发布于 2011-11-17 22:22:31

代码语言:javascript
运行
复制
function transform($array) {
    $return = Array();
    foreach($array as $keyname => $value) {
        list($key, $key2) = explode("_", $keyname, 2);
        if(!isset($return[$key])) $return[$key] = Array();
        $return[$key][$key2] = $value;
    }
    return $return;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8168475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档