PHP数组声明:从现有键赋值


PHP array declaration: assign value from existing key

发现很难做出有意义的问题标题。我将用一个例子来更好地解释:

$defaults = [
   'user_posts' => [
      'default_per_line' => 4,
      'default_per_page' => [user 'default_per_line'] * 2,
   ],
   'admin_posts' => [
      'default_per_line' => 6,
      'default_per_page' => [admin 'default_per_line'] * 2,
   ],
];

我所说的"用户默认_per_line"是指使用已经分配为['user_posts']['default_per_page']的值,并将其与2(或其他任何值)相乘。

能做到吗?如果是,怎么办?

很确定我说不是对的,这不可能在一次作业中完成。

唯一能做到这一点的方法是在事实发生后更改阵列:

$defaults = [
   'user_posts' => [
      'default_per_line' => 4,
      'default_per_page' => 0,
   ],
   'admin_posts' => [
      'default_per_line' => 6,
      'default_per_page' => 0,
   ],
];
$defaults['user_posts']['default_per_page'] = $defaults['user_posts']['default_per_line'] * 4;
$defaults['admin_posts']['default_per_page'] = $defaults['admin_posts']['default_per_line'] * 4;

这在很大程度上违背了你想要做的事情。