2017-06-29 60 views
-1

于是,我来到了一个点,我需要检查一个数组内的值:得到associatve数组的数字索引而不指定键名

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

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

+2

您可以访问它通过数值之前使用'array_values($ your_arr)'.. –

+0

@FrayneKonok将这项工作对于多维数组太? :) – ThisGuyHasTwoThumbs

+0

对于你的数组,这将工作和输出将如下所示:'Array([0] => Array([val] => str [price] => int)[1] => Array([val] => str [price] => int))' –

回答

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 
     ) 

) 
+0

谢谢,当计时器关闭时会接受:) – ThisGuyHasTwoThumbs