我一直在努力争取这几天,并想把它扔出去,看看是否有人有任何想法。
基本上我有一个字符串,例如
$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]
平息输出是一种非常黑客的方法来实现这个......
答案 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;
}