【问题标题】:How to declare, insert and iterate a php associative array with an associative array as value?如何声明、插入和迭代以关联数组为值的 php 关联数组?
【发布时间】:2013-12-14 03:44:48
【问题描述】:

我需要使用一个哈希表,其中的值可以存储变量,例如:

  • $numberOfItems
  • $ItemsNames

如果我没记错的话,那就意味着另一个像数组一样的哈希值。

插入和迭代它的正确语法应该是什么?

是这样的:

$hash['anyKey']=>$numberOfItems=15;
$hash['anyKey']=>$ItemsNames=['f','fw'];

有效吗?

【问题讨论】:

  • 当您可以使用count() 轻松获得正确的数字时,为什么还要单独存储元素的数量?请为您要完成的工作制作一个更详细的示例。

标签: php arrays hashmap


【解决方案1】:

要创建一个可以是哈希表的php数组,你可以这样做:

$arr['element'] = $item;
$arr['element'][] = $item;
$arr['element'][]['element'] = $item;

其他方式:

$arr = array('element' => array('element' => array(1)));

要对其进行迭代,请使用 foreach 循环:

foreach ($items as $item) {
}

也可以创建嵌套循环。

关于您的案例:

$hash['anyKey']=>$numberOfItems=15;
$hash['anyKey']=>$ItemsNames=['f','fw'];

我愿意:

$hash['anyKey']['numberOfItems'] = 15;
$hash['anyKey']['ItemsNames'] = array('f','fw');

【讨论】:

  • 如果我需要推送任何东西到$hash['anyKey']['ItemsNames']怎么办?
  • $hash['anyKey']['ItemsNames'][] = 'some new value'; [] 将创建新的数字增量键。
  • 不,我的意思是,如果你声明 $hash['anyKey']['ItemsNames'] = array('f','fw'); 我怎样才能让这样的数组成为 ('f','fw', 'zz') 以后
  • $hash['anyKey']['ItemsNames'][] = 'zz';
【解决方案2】:

如果没有机会在项目名称上串通,您可以使用键中的名称

$hash[$ItemsName] = $numberOfItems;

在另一种情况下,例如使用整数作为键,然后使用您想要的不同“属性”作为第二个数组的键

$hash[$integer]["count"] = $numberOfItems;
$hash[$integer]["name"] = $name;$

然后,对于迭代(第一种情况):

 foreach ($hash as $name => $number) {
       echo $number;
       echo $name;
   }

或者,第二种情况

foreach ($hash as $item) {
       echo $item["name"];
       echo $item["count"];
    }

【讨论】:

    猜你喜欢
    • 2019-05-11
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多