【问题标题】:get numeric index of associatve array without specifying the key name获取关联数组的数字索引而不指定键名
【发布时间】:2017-06-29 09:24:02
【问题描述】:

所以我需要检查数组中的值:

Array [
    'oneName' => [
        'val'   => 'str',
        'price' => 'int'
    ],
    'twoName' => [
        'val'   => 'str',
        'price' => 'int'
    ]
]

但是,这些 oneNametwoName 键名是从另一个脚本动态创建的。我需要在 if 语句中检查 twoName['price'] 的值(例如),这很好。我遇到了这个关于类似主题的 SO 帖子:php - get numeric index of associative array,但这是通过指定键名并基于此返回索引值来完成的。如何在不指定键名的情况下通过数字索引访问 twoName?还是我在问不可能?

【问题讨论】:

  • 您可以使用array_values($your_arr),然后再通过数值访问它。
  • @FrayneKonok 这也适用于多维数组吗? :)
  • 对于您的阵列,这将起作用并且输出将类似于:Array ( [0] => Array ( [val] => str [price] => int ) [1] => Array ( [val] => str [price] => int ) )
  • @FrayneKonok 太棒了,我刚刚查看了该函数的 PHP 文档,是的,看起来没问题,不要对数组的顺序大惊小怪 - 如果你把它变成一个答案,我会很高兴接受/赞成
  • 投反对票 - 我同意,但请留下解释,以便我改进。没有解释的否决与一个糟糕的问题一样糟糕 - 没有人知道

标签: php arrays


【解决方案1】:

要在不指定键名的情况下获取关联数组的数字索引,您需要使用array_values() 函数。

例子:

$arr = [
    'oneName' => [
        'val'   => 'str',
        'price' => 'int'
    ],
    'twoName' => [
        'val'   => 'str',
        'price' => 'int'
    ]
];

$arr = array_values($arr);
print_r($arr);

输出:

Array
(
    [0] => Array
        (
            [val] => str
            [price] => int
        )

    [1] => Array
        (
            [val] => str
            [price] => int
        )

)

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    相关资源
    最近更新 更多