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

php-数组foreach修改

我有一个数组$test这样的:

Array ( 
    [CUST_TYPE] => 
        Array ( 
            [0] => Family 
            [1] => Regular 
            [2] => Corporate 
            [3] => Premium ) 
    [TOTAL_BALANCE] => 
        Array ( 
            [0] => 420946131.01 
            [1] => 41272033223.93 
            [2] => 38873647942.4 
            [3] => 10465337565.61 ) 
        )

我需要将此数组转换(打印)成这样的东西:

{
cust_type : Family,
balance : 420946131.01
},
{
cust_type : Regular ,
balance : 41272033223.93
},
and so on..

这是我使用的简单的foreach,但是它只能打印cust_type或balance

$cols = array_keys($testing);

foreach ($testing[$cols[1]] as $i => $j) {
        echo '{cust_type : ' . $j . 
             ', balance : ' . $<What should I print??> . '},';        
    }

请帮助.
谢谢.

解决方法:

使用array_map(PHP 4> = 4.0.6,PHP 5)

$json = json_encode(array_map(function($a,$b){ return array("cust_type"=>$a,"balance"=>$b);},$array["CUST_TYPE"],$array["TOTAL_BALANCE"]));

测试

[akshay@localhost tmp]$cat test.PHP 
<?PHP

$array = array( 
            "CUST_TYPE" => array( 
                                'Family', 
                                'Regular', 
                                'Corporate', 
                                'Premium' 
                               ), 
            "TOTAL_BALANCE" => array( 
                                420946131.01, 
                                41272033223.93,
                                38873647942.4 ,
                                10465337565.61 
                              )
             );


// PHP 4,5
$json = json_encode(array_map(function($a,$b){ return array("cust_type"=>$a,"balance"=>$b);},$array["CUST_TYPE"],$array["TOTAL_BALANCE"]),JSON_PRETTY_PRINT);

// Input
print_r($array);

// Output
print $json."\n";

?>

输出

[akshay@localhost tmp]$PHP test.PHP 
Array
(
    [CUST_TYPE] => Array
        (
            [0] => Family
            [1] => Regular
            [2] => Corporate
            [3] => Premium
        )

    [TOTAL_BALANCE] => Array
        (
            [0] => 420946131.01
            [1] => 41272033223.93
            [2] => 38873647942.4
            [3] => 10465337565.61
        )

)
[
    {
        "cust_type": "Family",
        "balance": 420946131.01
    },
    {
        "cust_type": "Regular",
        "balance": 41272033223.93
    },
    {
        "cust_type": "Corporate",
        "balance": 38873647942.4
    },
    {
        "cust_type": "Premium",
        "balance": 10465337565.61
    }
]

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

相关推荐