将数组作为另一个数组中的单个项目传递

韦巴·贾恩(Vaibhav Jain)

我有这个数组

$arr = ['field_event_start_date', 'widget', 0, 'value', '#date_part_order', 3]

我想将其转换为以下格式的数组

$form['field_event_start_date']['widget'][0]['value']['#date_part_order'][3]

尝试将数组追加到$form数组。

我有一个$form数组,其中包含许多字段,并且我想取消设置一组字段。上面的数组是更大数组的一部分。如果我使用此数组,如何将其转换为如下所示的数组

$form['field_event_start_date']['widget'][0]['value']['#date_part_order'][3]

我已经尝试过,这样内爆,$form[implode('][', $arr)]但这总是说,未定义的索引。

我需要运行的最终代码是

unset($form['field_event_start_date']['widget'][0]['value']['#date_part_order'][3]);

但是,有许多类似这样的方法,其深度数是变化的。我需要编写一个通用函数来实现此目的。

皮埃尔·布伊尔

在Drupal 8中,您可以NestedArray::unsetValue()用来取消设置嵌套数组的值。您还可以使用NestedArray::getValue()NestedArray::setValue()通过键数组($parents从嵌套数组中获取和设置值

Drupal 7只有drupal_array_get_nested_value()drupal_array_set_nested_value()但是没有drupal_array_unset_nested_value()它可以很容易地从Drupal 8移植:

/**
 * Unsets a value in a nested array with variable depth.
 *
 * This helper function should be used when the depth of the array element you
 * are changing may vary (that is, the number of parent keys is variable). It
 * is primarily used for form structures and renderable arrays.
 *
 * @param array $array
 *   A reference to the array to modify.
 * @param array $parents
 *   An array of parent keys, starting with the outermost key and including
 *   the key to be unset.
 * @param bool $key_existed
 *   (optional) If given, an already defined variable that is altered by
 *   reference.
 *
 * Port of NestedArray::unsetValue() from Drupal 8
 *
 * @see drupal_array_get_nested_value()
 * @see drupal_array_set_nested_value()
 */
function drupal_array_unset_nested_value(array &$array, array $parents, &$key_existed = NULL) {
  $unset_key = array_pop($parents);
  $ref = &drupal_array_get_nested_value($array, $parents, $key_existed);
  if ($key_existed && is_array($ref) && array_key_exists($unset_key, $ref)) {
    $key_existed = TRUE;
    unset($ref[$unset_key]);
  }
  else {
    $key_existed = FALSE;
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数组作为元素放置到C中的另一个数组

来自分类Dev

javascript:将项目从一个数组中取出并放入另一个数组中

来自分类Dev

如何使用PHP将单个数组项推入另一个数组?

来自分类Dev

将一个数组作为键,将另一个数组作为值

来自分类Dev

将一个数组作为键,将另一个数组作为值

来自分类Dev

使用单个整数数组访问另一个数组中的项目时会发生什么

来自分类Dev

如何从数组中删除与另一个数组中的项目相等的项目?

来自分类Dev

删除一个数组中的项目,该项目在另一个数组中成角度?

来自分类Dev

根据另一个数组中给定的索引顺序将项目重新放置在数组中

来自分类Dev

如何将一个数组的元素传递给另一个?

来自分类Dev

将数组推入另一个数组作为值

来自分类Dev

将数组作为对象添加到另一个数组

来自分类Dev

有条件地将数组作为变量添加到另一个数组中

来自分类Dev

Javascript:尝试将项目从一个数组随机移动到另一个数组

来自分类Dev

将数组值传递给另一个数组

来自分类Dev

将数组(作为函数参数传递)元素复制到 JavaScript 中的另一个本地数组中

来自分类Dev

在另一个数组中对一个数组中的项目进行计数

来自分类Dev

删除数组中另一个数组中的项目

来自分类Dev

将一个数组的值作为维度分配给 SAS 中的另一个数组

来自分类Dev

将一个数组中的数组元素与另一个数组分开-Python

来自分类Dev

将一个数组(键)中的对象数组变成另一个数组(值)

来自分类Dev

如何将一个类中的数组放置到另一个类中的单个数组中?

来自分类Dev

如何在 JavaScript 中将一个数组添加为另一个数组中的项目

来自分类Dev

如何搜索对象数组包含另一个数组中的项目?

来自分类Dev

创建另一个数组中项目之间差异的数组

来自分类Dev

如何根据另一个数组中的项目过滤数组?

来自分类Dev

如何基于存储在另一个数组中的索引获取数组的项目

来自分类Dev

ruby基于另一个数组从数组中删除项目

来自分类Dev

如何使用另一个数组中的项目过滤打字稿数组

Related 相关文章

  1. 1

    将数组作为元素放置到C中的另一个数组

  2. 2

    javascript:将项目从一个数组中取出并放入另一个数组中

  3. 3

    如何使用PHP将单个数组项推入另一个数组?

  4. 4

    将一个数组作为键,将另一个数组作为值

  5. 5

    将一个数组作为键,将另一个数组作为值

  6. 6

    使用单个整数数组访问另一个数组中的项目时会发生什么

  7. 7

    如何从数组中删除与另一个数组中的项目相等的项目?

  8. 8

    删除一个数组中的项目,该项目在另一个数组中成角度?

  9. 9

    根据另一个数组中给定的索引顺序将项目重新放置在数组中

  10. 10

    如何将一个数组的元素传递给另一个?

  11. 11

    将数组推入另一个数组作为值

  12. 12

    将数组作为对象添加到另一个数组

  13. 13

    有条件地将数组作为变量添加到另一个数组中

  14. 14

    Javascript:尝试将项目从一个数组随机移动到另一个数组

  15. 15

    将数组值传递给另一个数组

  16. 16

    将数组(作为函数参数传递)元素复制到 JavaScript 中的另一个本地数组中

  17. 17

    在另一个数组中对一个数组中的项目进行计数

  18. 18

    删除数组中另一个数组中的项目

  19. 19

    将一个数组的值作为维度分配给 SAS 中的另一个数组

  20. 20

    将一个数组中的数组元素与另一个数组分开-Python

  21. 21

    将一个数组(键)中的对象数组变成另一个数组(值)

  22. 22

    如何将一个类中的数组放置到另一个类中的单个数组中?

  23. 23

    如何在 JavaScript 中将一个数组添加为另一个数组中的项目

  24. 24

    如何搜索对象数组包含另一个数组中的项目?

  25. 25

    创建另一个数组中项目之间差异的数组

  26. 26

    如何根据另一个数组中的项目过滤数组?

  27. 27

    如何基于存储在另一个数组中的索引获取数组的项目

  28. 28

    ruby基于另一个数组从数组中删除项目

  29. 29

    如何使用另一个数组中的项目过滤打字稿数组

热门标签

归档