如何创建一个基于字符串的prefixes子阵列? [英] How to create sub arrays based on prefixes of string?

查看:134
本文介绍了如何创建一个基于字符串的prefixes子阵列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有(一个例子)的一维阵列

  {
    [Pagamento_valor_liquido] =>串(3)111
    [Pagamento_valor_bruto] =>串(3)222
    [TipoPagamento_id] =>串(3)333
    [TipoPagamento_descricao] =>串(3)444
}

和我需要帮助的两个子阵列变压器这样的:

  {
    [Pagamento] =>阵列(2){
        [valor_liquido] =>串(3)111
        [valor_bruto] =>串(3)222
    }
    [TipoPagamento] =>阵列(2){
        [ID] =>串(3)333
        [valor_bruto] =>串(3)444
    }
}

如何与这种模式(Father_son_name)?做一个通用的方法

谢谢,
塞尔索·


解决方案

  $阵列=阵列(Pagamento_valor_liquido=>中111,Pagamento_valor_bruto=>中222 TipoPagamento_id=>中333,TipoPagamento_descricao=>中444);$结果=阵列();
的foreach($数组作为$ K => $ V){
    $名称=爆炸('_',$ K);
    $ =则newkey array_shift($名);
    $ NEWNAME =破灭('_',$名);
    $结果[$则newkey] [$ NEWNAME = $ V;
}
var_export($结果);

看着它在行动 此处

似乎是pretty通用为你的目的。

I have a one-dimensional array with (a example):

{
    ["Pagamento_valor_liquido"]=> string(3) "111"
    ["Pagamento_valor_bruto"]=> string(3) "222"
    ["TipoPagamento_id"]=> string(3) "333"
    ["TipoPagamento_descricao"]=> string(3) "444"
}

and i need help to transforme this in two sub arrays:

{
    ["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"
    }
}

How do it in a generic way with this pattern (Father_son_name)?

Thanks, Celso

解决方案

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

Watch it in action here

Seems to be pretty generic for your purpose.

这篇关于如何创建一个基于字符串的prefixes子阵列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆