字符串到关联数组转换

时间:2017-08-04 10:09:46

标签: php arrays string multidimensional-array

我一直在努力争取这几天,并想把它扔出去,看看是否有人有任何想法。

基本上我有一个字符串,例如

 $charge = \Stripe\Charge::create(array(    
        "amount" => $amount_cents,
        "currency" => "usd",
        "customer" => $customer->id,
       )        
    );

并需要将其转换为多维数组

1) "/0/bar"

2) "/build/0/foo/1"

到目前为止,我已经尝试过:

1) $result[0][bar] 
2) $result[build][0][foo][1]

平息输出是一种非常黑客的方法来实现这个......

2 个答案:

答案 0 :(得分:1)

您需要修剪字符串的第一个/live demo

<?php
$query = "/build/0/foo/1";
$queryAr = [];
$current = &$queryAr;
$keys = explode("/", trim($query, '/'));

foreach($keys as $key) {
  @$current = &$current[$key];
}

$current = $value;
print_r($queryAr);

答案 1 :(得分:0)

我尝试了一个递归函数版本:

yourImage.draw(in: CGRect, blendMode: CGBlendMode, alpha: ImageOpacity)

输出:$query = "/build/0/foo/1"; print_r($result = buildNestedArray(explode('/', trim($query, '/')))); function buildNestedArray($keys) { $k = current($keys); $result = [$k => 'DONE']; array_shift($keys); if (sizeof($keys) > 0) { $result[$k] = buildNestedArray($keys); } return $result; }