【问题标题】:Use array values as new multidimensional array keys [duplicate]使用数组值作为新的多维数组键[重复]
【发布时间】:2018-11-09 10:14:00
【问题描述】:

编辑(投票后):这里有一个类似的问题> Using a string path to set nested array data 但是,由于它的措辞方式,我在搜索答案时没有找到该问题,而且我确信这会发生在其他人身上,因此这个问题可能是解决该问题及其答案的有用途径。

我确定我遗漏了一些明显的东西,但我想不出该怎么做:我有一个包含一个或多个项目的数组:

array('value1', 'value2');

我需要将这些值用作多维数组中的键:

array['value1']['value2'] = 'somevalue';

我该怎么做?

【问题讨论】:

  • 您的值是整数还是可以是字符串或任何类型的对象?
  • 初始数组中的所有值都是字符串
  • 你从哪里得到'somevalue'?
  • 这是同一个对象中的一个值,它还包含第一个数组作为属性
  • 如果这些值不是唯一的,您也会遇到问题。

标签: php arrays multidimensional-array


【解决方案1】:

你可以在这里使用一个很好的递归:

function nestArray($items, $value) {
    return $items ?
        array($items[0] => nestArray(array_slice($items, 1), $value))
        : $value;
}

$array = array('value1', 'value2');
print_r(nestArray($array, 'somevalue'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多