PHP:如何在关联数组中通过数字偏移量获取数组的值?

5

我有一个关联数组,变量转储显示如下:

Array
(
    [tumblr] => Array
        (
            [type] => tumblr
            [url] => http://tumblr.com/
        )

    [twitter] => Array
        (
            [type] => twitter
            [url] => https://twitter.com/
        )

)

正如您所看到的,键是自定义的“tumblr”和“twitter”,而不是数字0和1。

有时我需要通过自定义键获取值,有时我需要通过数字键获取值。

是否有任何方法可以使$myarray [0]输出:

(
    [type] => tumblr
    [url] => http://tumblr.com/
)

在PHP中,数字键和字符串键不能互换使用。您能描述更多您需要的内容吗? - Michael Berkowski
在PHP中,所有的数组都是关联数组,即使是数字索引的数组也是如此。这意味着如果你将一个字符串作为索引赋值,就没有相关的数值。下面@nickb有一种很好的处理方法。 - Surreal Dreams
@Michael,别问了,我正在处理别人的代码,不想重写整个程序。 - user967451
2个回答

8
你可以使用 array_values() 函数处理数组:
$myarray = array_values( $myarray);

现在你的数组看起来像这样:
array(2) {
  [0]=>
  array(2) {
    ["type"]=>
    string(6) "tumblr"
    ["url"]=>
    string(18) "http://tumblr.com/"
  } ...

这是因为array_values()只会从数组中获取值,并将该数组重置/重新排序/重新键入为数字数组。

1
$myarray+=array_values($myarray); 会创建一个可以使用命名和数字索引的数组,就像 mysql_fetch_array 的工作方式一样 :) - Sean Johnson

0
你可以使用array_values来获取带有数字索引的数组的副本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接