PHP:从列表中构建一个不替换值的关联数组



我有这个列表在一个文件中:

paul,1
peter,1
mary,1
ian,1
paul,2
peter,2
mary,2
paul,3
mary,3

我必须以这样的数组结尾:

$people=array(
    'paul'=>array(1,2,3),
    'peter'=>array(1,2),
    'mary'=>array(1,2,3),
    'ian'=>array(1)
);

where is I am:

$a=file($f);//$a=array, $f=file
foreach($a as $b){
    $l=explode(',',$b);//$l=list
    $p=$l[0];//$p=person
    $n=$l[1];//$n=number
}
print_r($lista);

当然,这是行不通的。什么好主意吗?

谢谢。

您就快完成了,但是您必须检查变量名称。例如,$d$e在任何地方都没有定义,并且您将错误的参数传递给in_array

应该这样做:

$file = file($f);
$list = array();
foreach($file as $line){
    list($name, $value) = explode(',', $line);
    if(!isset($list[$name])) {
        $list[$name] = array();
    }
    $list[$name][] = $value;
}
print_r($list);

没有要求检查当前名称的数组是否已经存在。根据下面的语法,PHP会为一个不存在的名字创建数组。

foreach ($a as $b) {
    list($name, $number) = explode(',', $b);
    $lista[$name][] = $number;
}

相关内容

  • 没有找到相关文章

最新更新