2014-02-09 179 views
0

你好家伙,我已经看到了码这实在是混乱到me.The代码存储值变量

$array = array('Alpha' => 1.1,'Bravo' => 2.2,'Charlie' => 3.3,'Delta' => 4.4,'Echo' =>5.5, 'Golf' => 6.6); 

$pos = 3; 

function getAtPos($tmpArray,$pos) { 
    $keys = array_keys($tmpArray); 
    return array($keys[$pos-1] => $tmpArray[$keys[$pos-1]]); 
} 

$return = getAtPos($array,$pos); 

var_dump($return); 

只看到。它与$keys[$pos-1]关键和$tmparray[$keys[$pos-1]返回数组代码的5日线作为价值。

我只需要知道wheather值$ POS-1存储到$键..和的[$keys[$pos-1] stores to $tmparray ..

值请帮我理解这个..Any帮助将提前意识到..Thanks

回答

0

我真的不明白的问题..但

return array($keys[$pos-1] => $tmpArray[$key[$pos-1]]); 

回报您在第一行创建的$阵列内部的阵列多数民众赞成在位置$ POS-1表示

如果调用getAtPos($阵列,3),它应该返回数组像这样的......

['Charlie'=>3.3] 

编辑

你看,$阵列上方,是一个key =>值数组。也就是说,不是按位置编号,而是用关键字标记它们。如果你想获得数组的第二个元素(“Charlie”),你将不得不做如下的事情:$(“Charlie”,“Stackoverflow”)如果你想获得数组的第二个元素var = $ array [1]。

在这种情况下,因为这是一个key => value数组,所以你应该用关键字而不是位置来看待,所以你在那里做的那个返回是一个解决方法来获得关键字和值在你的位置需要。

返回结果在那里做的是返回一个数组,其中包含$ array变量所指定位置的元素的关键字和值。

这应该比我更清楚...... http://www.php.net/manual/en/language.types.array.php

+0

可以请您详细阐述更多? ? – user3288826

+0

是的,我得到它和$ tmparray [$ key [$ pos-1]]在这里做什么?... – user3288826

+0

谢谢,我明白了.. – user3288826

0

当您将array_keys()功能$ tmpArray,$键变成阵列与$ tmpArray的键作为值:

array(6) { [0]=> string(5) "Alpha" [1]=> string(5) "Bravo" [2]=> string(7) "Charlie" [3]=> string(5) "Delta" [4]=> string(4) "Echo" [5]=> string(4) "Golf" }

则您与位置在$ POS减1(2至极为“查理”),并为他的价值VA声明的键返回一个阵列在$ pos中声明的位置减去$ tmpArray 数组(2为3.3)。

这是混乱的,你生成一些关键的一个新的阵列和他的其他数组中值:

$return = array( 
     key($array[3]) => $array[3] 
); 

或者像lascort提到:

$return = getAtPos($array, 3);