【问题标题】:PHP: how to add associative keys to a numeric array... without deleting the numeric keysPHP:如何将关联键添加到数字数组...而不删除数字键
【发布时间】:2015-03-10 15:10:19
【问题描述】:

假设我有一个这样的数组:

$result=array("1", "2", "34");

我还有另一个数组:

 $keys=array("id", "price", "day");

事实上,$result 的每个值都有数字键。我想添加到这些值关联键,使用 $keys 中的值,但不删除数字键。也就是说,我希望结果是:

array(6)
{ [0]=> string(1) "1"
  [1]=> string(1) "2"
  [2]=> string(2) "34"
  ["id"]=> string(1) "1"
  ["price"]=> string(1) "2"
  ["day"]=> string(2) "34"
}

我知道我可以编写一个很小的函数来手动执行此操作,但是在 PHP 的众多函数中,是否有任何内置函数可以自动执行此操作? (我的 PHP 知识有点生疏)。

【问题讨论】:

  • 使用array_combine() - $result = array_merge($result, array_combine($keys, $result)); 虽然我不明白你为什么需要枚举键和关联键
  • 但是 array_combine() 不保存数字键。它创建了一个新的关联。只有关联键的数组。
  • 这就是为什么他在array_combine之后创建一个array_merge
  • Aaahhh... 与array_merge 不同的是。这行得通。
  • @PaulJ - 你的意思一定是 mysqli_fetch_array(),而不是 mysqli_fetch_assoc(),第一个返回数字和关联数组。

标签: php arrays


【解决方案1】:

你可以这样做:

$result=array("1", "2", "34");
$keys = array("id", "price", "day");
$array = $result + array_combine($keys, $result);

如果你考虑使用array_merge,我推荐这个帖子:Array_merge versus +

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多