【问题标题】:PHP - array key within array valuePHP - 数组值内的数组键
【发布时间】:2016-03-18 15:56:21
【问题描述】:

我有一个这样的 PHP 数组:

$arr = array(
  'id'     => 'app.settings.value.id',
  'title'  => 'app.settings.value.title',
  'user'   => 'app.settings.value.user'
);

我想删除数组值中的“.id”、“.title”和“.user”。我想在值的末尾插入这个数组的键。我知道,我可以通过将一个数组和一个值传递给“array_search”来获得一个数组键,但我想要这个数组定义中的键 - 在它的值的末尾。这可能吗?

【问题讨论】:

  • Yoru 问题不清楚。您想通过将键添加到值对的末尾来将array('id' => 'app.settings.value') 变成array('id' => 'app.settings.value.id')
  • 是的,“我想在值的末尾插入这个数组的键”。所以我想在数组值的末尾添加这个'id','title'和'user',我想将它们设置为'app.settings.value。',因为我不想重复这个已经存在的密钥,我认为这是一个更动态的解决方案。我不认为不清楚,因为我写道,我想在数组值(即 'app.settings.value. ',在哪里都无所谓,数组值是什么)。
  • 在您的示例中,“id”、“title”和“user”似乎已经位于数组值的末尾。如果不是这种情况,您是否可以编辑问题以显示数组当前的外观以及您试图将其变成什么?
  • @J.Wenston 如果您编写所需输入/输出数组的示例,您的问题肯定更清楚。

标签: php arrays


【解决方案1】:

我不喜欢这个,但我想它很简单并且有效:

$arr = array(
  'id'     => 'app.settings.value',
  'title'  => 'app.settings.value',
  'user'   => 'app.settings.value'
);

$result = array();
foreach ($arr AS $key => $value) {
    $result[$key] = $value . '.' . $key;
}

您正在存储app.settings.value,这对于所有数组项都是相同的,所以我个人更喜欢:

$arr = array(
  'id',
  'title',
  'user'
);

function prepend_key($key)
{
    return 'app.settings.value.' . $key;
}

$result = array_map('prepend_key', $arr);

$result 包含:

array(
  'app.settings.value.id',
  'app.settings.value.title',
  'app.settings.value.user'
);

归根结底,两者都可以:)

【讨论】:

  • 你不喜欢它什么?
  • 更新的答案显示,我想这在宏伟的计划中并不重要。
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
相关资源
最近更新 更多