2012-03-14 50 views
1

在PHP的關鍵()函數:ActionScript 3的PHP Key()函數?

的key()函數簡單地返回,因此目前正由內部指針指向的數組元素的鍵。它不會以任何方式移動指針。如果內部指針指向元素列表末尾或數組爲空,則key()返回NULL。

他們的任何事情與AS3.0相似嗎?

另請注意:在php中的.=+=一樣嗎?

這是我想要實現的一個例子。基於用於PHP密鑰上述信息()函數轉換爲ActionScript 3.

基本上在PHP這是什麼樣的密鑰()用於:

<?php 
$array = array(
    'fruit1' => 'apple', 
    'fruit2' => 'orange', 
    'fruit3' => 'grape', 
    'fruit4' => 'apple', 
    'fruit5' => 'apple'); 

// this cycle echoes all associative array 
// key where value equals "apple" 
while ($fruit_name = current($array)) { 
    if ($fruit_name == 'apple') { 
     echo key($array).'<br />'; 
    } 
    next($array); 
} 
?> 

上例將輸出:

fruit1
fruit4
fruit5

你可以看到更多在:http://ca3.php.net/manual/en/function.key.php

+0

'='我認爲這是字符串連接,是有從數學運算區分( '+ =')。 – Marty 2012-03-14 22:24:27

+0

'另一方面不是:是。=在php中意味着相同+ =?'不。 – Nanne 2012-03-14 22:24:34

+0

編輯說明:刪除了PHP標籤,因爲您並不是真的需要PHP開發人員,您正在解釋PHP函數並向actionscript開發人員要求類似的東西。 – 2012-03-14 23:25:53

回答

1

你的例子使用一個php數組作爲哈希映射或字典。所述documentation說:

PHP中的數組[...]可以被視爲一個陣列,列表(矢量),哈希表(映射的實施方案),字典,集合,棧,隊列和可能更多。

在as3中有一個專門的類,它被稱爲Dictionary。您也可以使用Array或任何其他動態對象來實現相同的功能。但我們在這裏使用Dictionary。所述documentation說:

ActionScript 3.0中引入了一個先進的類型關聯數組稱爲字典...

此外,功能current()next()是不知何故iterator pattern,這沒有內置在實施方式中相當於as3。但最接近您所提供的代碼,我認爲,使用簡單的for..in循環的:

for (var key:String in dictionary) { 
    if (dictionary[key] == "apple") 
     trace(key); 
} 
1

從我瞭解你正在試圖做到這一點:

的函數(不要以爲你想要做什麼內置的,雖然它可能是):

function getKey(array:Array, find:*):String 
{ 
    for(var i:String in array) 
    { 
     if(array[i] == find) return i; 
    } 

    return ""; 
} 

而且有些測試代碼:

var test:Array = []; 

test["example"] = "hello"; 
test["something"] = "there"; 


trace(getKey(array, "hello")); // "example" 
+0

請看上面的OP編輯問題。你在做什麼讓我在存儲該值的數組中找到位置。 – TheWebs 2012-03-14 22:37:58

+0

不是。這就是'indexOf()'的作用。如果你尋找'hello'(例如'apple'給你'fruit1'在你的例子中)和'something'''there',我的代碼返回'example'。 。 – Marty 2012-03-14 22:39:28