2011-05-25 53 views
1

與array_push()類似,我們可以將元素推入數組中。我想將一個散列[名稱,URL]推送到一個散列數組中。如何將哈希推入到PHP數組中?

+1

請問你能描述一下你的意思嗎? – RJD22 2011-05-25 10:40:41

+0

什麼是「散列數組」?你在尋找PHP的等價於Perl的散列,「關聯數組」嗎? – 2011-05-25 10:43:39

+0

好吧,它就像地圖或鍵值對。我正在解析for循環中的幾個文件,我想將文件的名稱和文件的URL添加到一個數組中,這是一個地圖數組。即我想添加或推動一個鍵,值對到一個數組中。即array_push(name,url)映射到map數組。我是PHP的新手......可能是我的PHP術語錯了...但這就是我需要做的。 – 2011-05-25 10:46:26

回答

-1

IFIF我理解你的問題,你想從一個網址檢索哈希值,然後使用parse_urlPHP_URL_FRAGMENT參數

$url = 'http://username:[email protected]/path?arg=value#anchor'; 

print_r(parse_url($url)); 

echo parse_url($url, PHP_URL_FRAGMENT); 

將返回

[fragment] => anchor 

Reference

+3

這是接受嗎?這似乎與這個問題無關:/ – 2014-01-13 23:36:19

+0

這就是爲什麼我在代碼之前編寫它的原因。你是對的。這個答案與問題無關。 – diEcho 2014-01-14 10:50:42

7

如果你指的是關聯數組,其中關鍵字爲用戶提供的(而不是自動遞增的數字字段),只使用直接的語法:

$a = Array(); 
$a['name'] = 'url'; 

注意$a = Array(); array_push($a, 'lol');(幾乎)$a = Array(); $a[] = 'lol';相同。 array_push對於相同的語法只是一個(無意義的)「快捷方式」,它只適用於自動數字索引。

I strong推薦閱讀the PHP manual section on the topic。這就是它的目的。

+0

+1指出在大多數情況下'array_push()'實際上是沒有意義的,並且可以用'$ a [] ='something''來替換(除非你想要它獲得元素之後的元素數)在同一行內更新)。 – Tadeck 2011-05-25 18:00:23

+0

@Tadeck:的確如此,謝謝:) – 2011-05-25 18:10:26

2
<?php 
    $aArrayOfHash['example'] = 'http://example.com/'; 
?> 
4

我不知道,你有什麼需要,但它需要推動對值到數組,這可能是您的解決方案:

$hashes_array = array(); 

array_push($hashes_array, array(
    'name' => 'something1', 
    'url' => 'http://www1', 
)); 

array_push($hashes_array, array(
    'name' => 'something2', 
    'url' => 'http://www2', 
)); 

$hashes_array之後應該是一個(的每個元素較大的陣列是陣列本身 - 具有兩個鍵和與它們對應的兩個值的關聯陣列):

[ 
    ['name' => 'something1', 'url' => 'http://www1'], 
    ['name' => 'something2', 'url' => 'http://www2'] 
] 
+0

是的,我只想要這個。現在我怎麼能從第一個值映射第二個值。 [key/value]對在這裏? – 2011-05-25 11:02:11

+0

我需要對第一個值[name]或key進行排序,第二個值也應該在此基礎上進行排序。 – 2011-05-25 11:06:31

+0

@mandy我不明白你在說什麼,但接受的答案表明你正在試圖找出如何創建關聯數組。我確實使用了關聯數組,但我沒有解釋它需要解釋的方式。 – Tadeck 2011-05-25 18:02:47