2016-04-07 187 views
0

值键使用PHP的网站作为一个参考,我试图寻找已知值的关联数组的关键:搜索在多维数组

http://php.net/manual/en/function.array-search.php

下面的代码总是返回1,但假设返回120:

$location_key = array_search(1, array_column($locations, 'main')); 

的print_r($位置):

Array 
(
    [120] => Array 
     (
      [clientid] => 122103 
      [name] => HQ 
      [address] => 2013 BENSON GARDEN BLVD 
      [address2] => 
      [city] => OMAHA 
      [state] => NE 
      [zip] => 68134 
      [country] => UNITED STATES 
      [lat] => 00.000 
      [lng] => -0.0000 
      [taxrate] => 0 
      [main] => 1 
      [active] => 1 
      [contactid] => 14 
     ) 

    [122] => Array 
     (
      [clientid] => 122103 
      [name] => Branch 
      [address] => 515E E 72ND ST 
      [address2] => 
      [city] => NEW YORK 
      [state] => NY 
      [zip] => 10021 
      [country] => UNITED STATES 
      [lat] => 40.766705 
      [lng] => -73.952965 
      [taxrate] => 0 
      [main] => 0 
      [active] => 1 
      [contactid] => 0 
     ) 

) 

不确定为什么PHP的网站引用最高票数的“用户提交的注释”,这是行不通的。

回答

1

这是因为array_column()不保留您的密钥。因此,您首先需要array_combine()密钥与array_column()的阵列,例如

$location_key = array_search(1, array_combine(array_keys($locations), array_column($locations, 'main'))); 
+0

完全有道理......只是想知道PHP网站上'xmailawy at gmail dot com'的答案有235票与我的结构完全相同,并且不起作用。 –

+0

@AlexG再仔细看看:)他没有像你这样的关联数组。他的一个是0,1,2,... – Rizier123

+0

嗯...... 0,1,2(按顺序)使它成为一个与我的120,122 ...相比的关联数组? –