我有一个类似
的数组$arr = [
'foo' => [
'bar' => [
1
],
'baz' => [
1
]
]
]
另一个
$path = ['foo', 'bar', 0];
我需要使用$arr
修改$path
的值。我需要解决方案非常简单,我尝试过像
$arr...$path = 2;
$arr[...$path] = 2;
修改后$arr
应该是
$arr = [
'foo' => [
'bar' => [
2
],
'baz' => [
1
]
]
]
但我有错误。我不知道阵列会有多少级别。
答案 0 :(得分:4)
您的路径不正确 - 您需要$arr[$path] = 2;
$path = ['foo', 'bar', 0];
$p = &$arr;
foreach($path as $step)
$p = &$p[$step];
echo $p . "\n";
$p = 2;
print_r($arr);
或者
$path = ['foo', 'bar'];
$p = &$arr;
foreach($path as $step)
$p = &$p[$step];
echo $p[0] . "\n";
$p[0] = 2;
print_r($arr);
答案 1 :(得分:1)
试试这个:
def thankyou
@order.update_attributes(:approval_required => true)
end
答案 2 :(得分:-1)
echo json_encode(array("Name" => $newArray));