2011-05-25 25 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