【问题标题】:How to push hash into array of hash in php?如何将哈希推入php中的哈希数组?
【发布时间】:2011-09-01 15:52:10
【问题描述】:

像 array_push() 一样,我们可以将元素推入数组。我想将一个哈希 [name,url] 推入一个哈希数组。

【问题讨论】:

  • 您能描述一下您对哈希的含义吗?
  • 什么是“哈希数组”?您是否正在寻找 PHP 的等效于 Perl 的哈希“关联数组”?
  • 嗯,它就像地图或键值对。我在 for 循环中解析几个文件,我想将文件名和文件 url 添加到一个数组中,该数组只不过是一个映射数组。即我想将键、值对添加或推送到数组中。即 array_push(name,url) 到地图数组。我是 PHP 新手...可能我对 php 术语有误...但这是我需要做的。
  • 请阅读有关数组的 PHP 手册页以了解它们在 PHP 中的工作方式。我的答案中有一个链接。

标签: php hash


【解决方案1】:

如果您指的是用户提供键的关联数组(而不是自动递增的数字字段),只需使用直接语法:

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

请注意,$a = Array(); array_push($a, 'lol'); (几乎)$a = Array(); $a[] = 'lol'; 相同。 array_push 只是相同语法的(毫无意义的)“快捷方式”,仅适用于自动数字索引。

强烈推荐阅读the PHP manual section on the topic。这就是它的用途。

【讨论】:

  • +1 用于指出array_push() 在大多数情况下实际上是没有意义的,可以用$a[] = 'something' 替换(当然,除非您希望它获取更新后的元素数量同一行)。
【解决方案2】:

我不知道,你需要什么,但你需要将一对值推入数组,这可能是你的解决方案:

$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']
]

【讨论】:

  • 是的,我只想要这个。现在我如何从第一个值映射第二个值。 [键/值] 对在这里?
  • 我需要对第一个值 [name] 或键进行排序,第二个值也应该在此基础上进行排序。
  • @mandy 我不明白你在说什么,但接受的答案表明你正试图找出如何创建关联数组。我确实使用了关联数组,但我认为并没有按照您需要的方式解释它。
  • 嘿,谢谢...我在寻找类似 hash 或 map [perl 背景] 的东西,但关联数组已经完成了我的工作。
【解决方案3】:
<?php
    $aArrayOfHash['example'] = 'http://example.com/';
?>

【讨论】:

    【解决方案4】:

    如果我理解您的问题,您想从 url 中检索哈希值,然后使用 parse_urlPHP_URL_FRAGMENT 参数

    $url = 'http://username:password@hostname/path?arg=value#anchor';
    
    print_r(parse_url($url));
    
    echo parse_url($url, PHP_URL_FRAGMENT);
    

    会回来

     [fragment] => anchor
    

    Reference

    【讨论】:

    • 这被接受了吗?似乎与问题无关:/
    • 这就是我在写代码之前写它的原因。是的,你是对的。这个答案与问题无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2011-04-20
    • 2011-11-22
    • 2016-06-27
    • 2018-01-28
    • 2015-11-26
    • 1970-01-01
    相关资源
    最近更新 更多