我有一个我需要格式化为单个数组的数组。我目前的功能很好,因为我无法弄清楚如何为ID设置自定义键。该数组用于填充选择框,因此我需要该ID。我花了几个小时搞乱它,在格式化数组时我只是迷失了。
我需要输出使用自定义键(例如$ row-> id),它会输出如下内容:
[40 =>'Florida', 50 =>'CA', 33 => 'NY']
现在输出像..
[0 =>'Florida', 1 =>'CA', 2 => 'NY']
这是我目前的职能:
protected function createRegionList($parent_id = '0', $spacing = '')
{
$arr = [];
foreach ($this->getByParentId($parent_id) as $row) {
$arr[] = $spacing . ' ' . $row->title;
$arr = array_merge($arr, $this->createRegionList($row->id, ' ' . $spacing . '—'));
}
return $arr;
}
非常感谢任何帮助或建议。我找到了一堆例子,但它们是更多维的数组,我需要将输出作为单个数组。
答案 0 :(得分:1)
您可以通过在括号中指定键来设置数组项键。请参阅PHP docs。
试试这个
$arr[$row->id] = $spacing . ' ' . $row->title;
array_merge不保留密钥。使用array_replace。
或者只是将这些结合在一起
$arr = [];
foreach ($this->getByParentId($parent_id) as $row) {
$arr[] = $spacing . ' ' . $row->title;
$childs = $this->createRegionList($row->id, ' ' . $spacing . '—');
$arr = $childs + $arr;
}
return $arr;