我目前正在尝试创建一个像这样的数组哈希表:
joe
=> 1
=> 2
pete
=> 1
=> 3
我的PHP代码如下所示:
$name = array();
while(my condition statement) {
if (preg_match("/(.+?)\s*\-\s*(.+?)/", $info)) {
list($name, $number) = split('\s*\-\s*', $info);
array_push($name,$number);
}
}
$_SESSION['info'] = $name;
我的外出看起来像这样:
[0] => 1 [1] => 2
为什么名称没有出现?
我知道Perl我总是做这样的事情:
while() {
push @{$hash{$name}}, $number
}
答案 0 :(得分:2)
正确指定索引:
$array['joe'][] = 1;
$array['joe'][] = 2;
$array['pete'][] = 1;
...
在您的示例中类似于:
$array[$name][] = $number;
虽然我在while循环中覆盖$ name时并没有真正得到你的代码。
答案 1 :(得分:1)
$names = array();
// [...]
list($name, $number) = split('\s*\-\s*', $info);
$names[$name][] = $number;