将值作为新数组中的键返回

时间:2012-05-11 08:03:00

标签: php arrays

我有一个PHP数组。

array
  0 => int 1
  1 => int 13
  2 => int 16
  3 => int 17
  4 => int 18

我想要的是一个像这样的新数组:

array(1, 13, 16, 17, 18)

即。这些值现在是新数组的键

我已尝试array_flip,但我需要删除这些值。 我用Google搜索过,似乎没有任何相关内容。

如果有人能指出我正确的方向或提供更好的解决方案,我们将不胜感激。

编辑:

array_flip返回:

array
  1 => int 0
  13 => int 1
  16 => int 2
  17 => int 3
  18 => int 4

我想要的只是:array(1, 13, 16, 17, 18)

我理解这是错的吗?我想要的输出实际上是否在每个键上都有空值?

2 个答案:

答案 0 :(得分:1)

您似乎无法理解数组的工作原理。每个包含至少一个值的数组总是有一个键和一个值。在这种情况下:

array(1, 13, 16, 17, 18)

值为1,13,16,...并且密钥由PHP隐式设置。在这种情况下,值1具有键0,值13具有键1,依此类推。

第一个和第二个数组之间的唯一区别是,在第一个数组中,您明确定义了键。简而言之,阵列是相同的。

答案 1 :(得分:-2)

你可以做一个关联数组:

$hello_im_the_new_array=Array();
foreach $array_with_keys as $im_a_key_to_other_array {
         $hello_im_the_new_array[$im_a_key_to_other_array]=$im_the_content_of_that_key_in_the_new_array
}

或者如果您正在寻找其他数组的值:

foreach $array_with_keys as $im_a_key_to_other_array {
    echo $the_array_with_values[$im_a_key_to_other_array];
}

如果你不是在寻找这个......我不明白你的问题