在foreach
循环中,我得到以下值:
$name = 'foo';
$id = '1';
现在,相同的名称可能会出现多次不同的ID,我想像这样形成数组:
$data = array('foo' => array('1','2','3'),
'bar' => array('4','7','98'),
'nee' => array('12','45','45'));
我试过了:
$data = array();
foreach ($rows as $row)
{
$name = $row->name;
$id = $row->id;
$data[$name] = $id;
}
然而,所有这一切都是:
最后一个值:
$data = array( 'foo' => '3',
'bar' => '98',
'nee' => '45');
所以不太确定如何做到这一点。
答案 0 :(得分:1)
您需要附加到子数组,而不是直接分配它。如果$name
尚不存在,则需要添加它。
$data = array();
foreach ($rows as $row)
{
$name = $row->name;
$id = $row->id;
if (isset($data[$name])) {
$data[$name][] = $id;
} else {
$data[$name] = array($id);
}
}
答案 1 :(得分:0)
如果您的名字没有值,您只需添加它,否则您将值附加到现有名称:
$data = array();
foreach ($rows as $row)
{
$name = $row->name;
$id = $row->id;
if (isset( $data[$name]) && is_array( $data[$name]) ) {
$data[$name][] = $id;
}
else {$data[$name] = array($id);}
}