使用包含path的另一个数组设置数组元素

时间:2015-07-25 08:24:21

标签: php arrays

我有一个类似

的数组
$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
    ]
  ]
]

但我有错误。我不知道阵列会有多少级别。

3 个答案:

答案 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));